【发布时间】:2012-02-07 03:52:33
【问题描述】:
我正在用 c 语言编写一个应用程序,在其中动态分配某些数组所需的内存。我知道其中许多数组都需要零分配。那么,当我免费调用它们时会有问题吗?例如free(malloc(0 * sizeof(int)));?我知道我的应用程序在我的机器上编译和运行正常,但我可以依赖这个吗?干杯!
【问题讨论】:
-
请注意
malloc(0)是implementation defined。 -
@Mysticial:是的,但是你可以
free它返回的任何结果(有效指针或NULL),对吧? -
这与数组的零初始化有什么关系?
-
@FredLarson 正确,但如果
malloc(0)返回NULL,它可能会触发检查NULL的内存不足检查。 -
@FredLarson:哦,对不起,误读了。我的眼睛一定是累了。