int *a[col] = (int *) malloc(col * sizeof(int));
这一句话为什么错了,为什么不能用指针数组动态分配二维数组?
是不是只能用int **a才能动态分配二维数组?
col在哪里定义的,是常数么?
如果不是,不能这么写
可以写int *a = (int *) malloc(col * sizeof(int));
定义数组的时候不能用变量。
可以用指针数组装分配出来数组的地址的。上面语句是指针数组初始化错了。
int *p[col];表示多个指针,存放多个地址了。你malloc一次只返回一个地址
你这是分配的一维数组,还有数组只能是常量,不能动态分配。不一定使用int **来分配 ,给你个正解吧
int m=8,n=8;//8*8
int **a=(int**)malloc(m*sizeof(int*));
memset(a,0,m*sizeof(int*));
for(int i=0;i<n;i++)
{
a[i]=(int*)malloc(n*sizeof(int));
memset(a[i],0,n*sizeof(int));
}
//或者
int (*a)[8]=new int[8][8];
memset(a,0,8*8*sizeof(int));
http://blog.csdn.net/lixiaogang_theanswer/article/details/68939806
谢谢各位大触,懂了,懂了