2维数组的疑惑,该怎么解决
2维数组的疑惑我定义一个二维数组如下:int (*pA)[COLSIZE] new int[ROWSIZE][COLSIZE]//正确我不想用ne
2维数组的疑惑
我定义一个二维数组如下:
int (*pA)[COLSIZE] = new int[ROWSIZE][COLSIZE];//正确
我不想用new了,直接用malloc,出现如下错误。
int (*pA)[COLSIZE] =(int *[COLSIZE]) malloc(sizeof(int) * ROWSIZE * COLSIZE);//错误
error C2440: “类型转换”: 无法从“void *”转换为“int *[5000]”
请问是什么原因呢?我的强制转化出错了吗? c mallco
[解决办法]int (*pA)[COLSIZE] =(int( *)[COLSIZE]) malloc(sizeof(int) * ROWSIZE * COLSIZE);
加一个括弧就好了。
int (*)[]括弧是语法的一部分。
[解决办法]
(int (*)[COLSIZE]) malloc .......