关于malloc 的小问题

zooffy 2019-05-18 11:52:01
看顺序表看到的
tmp->node = (unsigned int *)malloc(sizeof(unsigned int *) * capacity);

不是应该写成
tmp->node = (unsigned int **)malloc(sizeof(unsigned int *) * capacity);

有大佬出来解释解释吗
...全文
29 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
Italink 2019-05-19
  • 打赏
  • 举报
回复
tmp->node = (unsigned int *)malloc(sizeof(unsigned int *) * capacity);
tmp->node = (unsigned int **)malloc(sizeof(unsigned int *) * capacity);

前面的第一个括号是做一个简单的类型转换,故括号里的类型取决于tmp->node的类型,毕竟要保证等号两边类型相同
CaptainXue 2019-05-19
  • 打赏
  • 举报
回复
不知道你的tmp→node是什么类型的,如果是二位数组的话,那就是第一种写法。它是动态申请二维数组的空间,它的写法的含义是申请一个长度为capacity的一维数组,数组中的每个元素又是一个一维数组,这样就成了一个二维数组。而第二种写法有错误,如果按照这种写法的话,就不是*capacity,而是乘以行数*列数

33,311

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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