2维数组的疑惑

daxiaoyuyu 2013-11-23 03:52:28
我定义一个二维数组如下:
int (*pA)[COLSIZE] = new int[ROWSIZE][COLSIZE];//正确

我不想用new了,直接用malloc,出现如下错误。
 int (*pA)[COLSIZE] =(int *[COLSIZE]) malloc(sizeof(int) * ROWSIZE * COLSIZE);//错误

error C2440: “类型转换”: 无法从“void *”转换为“int *[5000]”
请问是什么原因呢?我的强制转化出错了吗?
...全文
72 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
木子方元 2013-11-23
  • 打赏
  • 举报
回复
1楼正 解
lee_鹿游原 2013-11-23
  • 打赏
  • 举报
回复

(int (*)[COLSIZE]) malloc .......

jsbzc 2013-11-23
  • 打赏
  • 举报
回复
int (*pA)[COLSIZE] =(int( *)[COLSIZE]) malloc(sizeof(int) * ROWSIZE * COLSIZE); 加一个括弧就好了。 int (*)[]括弧是语法的一部分。

69,382

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧