2016-11-11 79 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函數返回值。