c释放malloc(0)

Sta*_*hta 2 c malloc free zero

我在c中编写一个应用程序,我正在动态分配一些数组所需的内存.我知道很多这些数组都需要零分配.那么,当我打电话给他们时会有问题吗?例如free(malloc(0 * sizeof(int)));?我知道我的应用程序在我的机器上编译并运行正常,但我可以依赖它吗?干杯!

sve*_*rre 8

你可以放心free(malloc(0)).

来自man malloc:

如果 size0,则malloc() 返回其中一个NULL或后来成功传递给的唯一指针值free().

自由:

如果ptrNULL,则不执行任何操作