主题:[讨论]二维数组参数传递
求高手帮解决二维数组参数传递的问题。
二维数组做参数传递的时候,可以如下声明:
void func(int a[][3]);
但是有时碰到的情况是,数组的位数是动态生成的,所以网上建议这样写,
void func(int ** p, int n, int m);
但是程序还是会出错。如下为源代码:
---------------------------------
void func(int **p, int n, int m){
for(int i=0; i < n; i++)
for(int j=0; j < m; j++)
p[i][j]=i+j; ///////调试通过,但执行时报错
cout << p[1][2] <<endl;
}
void main(){
int a[2][3];
func((int **) a, 2, 3);
int k;
cin >>k ;
}
---------------------------------
VC 6.0编译器会弹出如下出错信息:"unhandled exception in XXX.exe:oxc000005:Access violatoin."
求高手指点!!!!!
二维数组做参数传递的时候,可以如下声明:
void func(int a[][3]);
但是有时碰到的情况是,数组的位数是动态生成的,所以网上建议这样写,
void func(int ** p, int n, int m);
但是程序还是会出错。如下为源代码:
---------------------------------
void func(int **p, int n, int m){
for(int i=0; i < n; i++)
for(int j=0; j < m; j++)
p[i][j]=i+j; ///////调试通过,但执行时报错
cout << p[1][2] <<endl;
}
void main(){
int a[2][3];
func((int **) a, 2, 3);
int k;
cin >>k ;
}
---------------------------------
VC 6.0编译器会弹出如下出错信息:"unhandled exception in XXX.exe:oxc000005:Access violatoin."
求高手指点!!!!!