【发布时间】:2012-04-15 09:05:50
【问题描述】:
我知道为了malloc一个指向数组的指针数组,语法应该是:
(int**)malloc(numberOfDesiredElements*sizeof(int*))
一不小心忘了把numberOfDesiredElements*放在size前面。它弄乱了我的程序抛出随机分段错误,即有时程序输出正确,有时它出现分段错误。
当我没有说明我想要多少个插槽时,有人可以解释发生了什么吗?
谢谢!
【问题讨论】:
-
语法不应该是这样的。避免不必要的演员表。
-
malloc返回一个void*,可以隐式转换为int**。如果您缺少 malloc 的原型,显式转换可能隐藏错误。
标签: c malloc double-pointer