可能重複:
Does free(ptr) where ptr is NULL corrupt memory?
Is it good practice to free a NULL pointer in C?免費NULL指針
我有一個關於騰出一個空指針的問題。
char *p = NULL;
free(p);
請問free(NULL)
導致崩潰?
還是取決於編譯器?
可能重複:
Does free(ptr) where ptr is NULL corrupt memory?
Is it good practice to free a NULL pointer in C?免費NULL指針
我有一個關於騰出一個空指針的問題。
char *p = NULL;
free(p);
請問free(NULL)
導致崩潰?
還是取決於編譯器?
從免費
void free(void *ptr);
的free()函數的手冊頁將釋放內存分配由 ptr指向的。如果ptr是一個NULL指針,則不執行任何操作。
如果你想從C語言手冊本身
確認的免費功能使空間指向PTR是 釋放,也就是說,對於進一步劃定公佈。如果ptr是 空指針,則不會發生任何操作。
請參閱this文件的第313頁。
請注意,手冊頁不是標準C函數定義的可靠來源,因爲它們可能包含例如Posix特定的保證,通常對於C不能保證。在這種情況下,行爲也由C標準保證。 –
@SteveJessop正確..我將編輯答案..儘管問題已關閉.. – Krishnabhadra
http://stackoverflow.com/questions/1938735/does-freeptr-where-ptr-is-null-corrupt-memory –
它總是安全的。見http://stackoverflow.com/questions/6084218/is-it-good-practice-to-free-a-null-pointer-in-c重複的問題和答案。 – simonc