2016-11-11 45 views

回答

1

是的,通过NULL(空指针常量)到free()是完全有效的。

引用C11,章§7.22.3.3,(重点煤矿

free功能使空间指向ptr被解除分配,即,由 可用于进一步的分配。 如果ptr是空指针,则不会发生任何操作。 [...]

0

,传递到NULLfree无操作。从n1570

摘录(C11最终稿):

7.22.3.3自由功能 梗概
1#包括无空隙(void *的PTR);
说明
2自由函数使ptr指向的空间被释放,也就是说,可用于进一步分配。如果ptr是空指针,则不会发生任何操作。否则,如果参数与先前由内存管理函数返回的指针不匹配,或者空间已被释放或realloc调用释放,则行为未定义。
返回
3 free函数返回值。