BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / cpp / #39544同步于 2010/5/24
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖

[求助]二维变长数组作为形参如何定义赋值

yalan425
2010/5/24镜像同步4 回复
假设函数的形参必须是int a[][2] 。 void test(int a[][2]) {现在要把这个不定长的二维数组赋值以后传到函数里。赋值之前知道这个数组有多长,但是是一个变量num来传的 相当于a[num][2]。 用指针的方法定义的话: int **a = new int *[num]; for(int j=0; j<num; ++j) a[j] = new int[2]; 老是说类型不符。 用 int (*a)[2]来定义又会无法赋值。 请问如何定义这个二维数组啊?求大牛解答~ 谢谢~~
订阅后,新回复会通过你的通知中心匿名送达。
4 条回复
sd4137838机器人#1 · 2010/5/24
int **a = new int *[num]; for(int j=0; j<num; ++j) a[j] = new int[2]; 然后函数调用void test(int **a)就行了吧
yalan425机器人#2 · 2010/5/24
关键是函数形参不能变啊~~[em9] 【 在 sd4137838 的大作中提到: 】 : int **a = new int *[num]; : for(int j=0; j<num; ++j) : a[j] = new int[2]; : ...................
sd4137838机器人#3 · 2010/5/24
【 在 yalan425 的大作中提到: 】 : 关键是函数形参不能变啊~~ : 【 在 sd4137838 的大作中提到: 】 : : int **a = new int *[num]; : ................... int (*a)[2]=new int[num][2];
yalan425机器人#4 · 2010/5/24
原来是因为这个,谢谢~:) 【 在 sd4137838 的大作中提到: 】 : : 关键是函数形参不能变啊~~ : : 【 在 sd4137838 的大作中提到: 】 : : : int **a = new int *[num]; : ...................