C++二维数组作函数参数问题

C++本不支持可变数组的,但可先定义一个大数组,使用时可只使用其中一部分,实现可变的数组,但二维甚至多维数组作为函数参数时有一维却必须是定值,怎样才能让这一维也实现可变呢?

可以不固定,把二维数组的行列之作为参数一起传入,然后使用时计算所取数据的位置。
下面的程序没有上机调试,可能有小错误,但是思路原理是清楚的。
# include <stdio.h>
int sum(int *p,int row ,int col)
{
int sum;
sum=0;
for(i=0;i<col;i++)
for(j=0;i<col;j++)
sum+=p[row*i+j];
return sum;
}
void main(void)
{
int sum1=0,sum2=0;
int a[20]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20};
sum1=sum(a,4,5);
printf("%d\n",sum1);
sum2= sum(a,10,2);
printf("%d\n",sum2);
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-12-13
用Vector模板吧,那和数组一样的,可以通过".size()"来获得数组长度
二维也是一样的
很容易实现的,你可以试试的~
如vector<int> a;
你可以查下这方面的资料,一下子也说不清,如果还是不会,可以继续问我的~
相似回答