可能重複:
Does free(ptr) where ptr is NULL corrupt memory?在C中釋放空指針是否是一種好的做法?
我正在寫釋放的指針,如果它是malloc()
版C函數。指針可以是NULL(在發生錯誤的情況下,代碼沒有機會分配任何內容)或分配到malloc()
。使用free(ptr);
而不是if (ptr != NULL) free(ptr);
安全嗎?
gcc
根本沒有抱怨,即使是-Wall -Wextra -ansi -pedantic
,但這是不是很好的做法?
另請參閱:[在免費調用之前檢查null](http://stackoverflow.com/questions/1912325/checking-for-null-before-calling-free) – Mat 2011-05-21 20:25:35
重新打開。問題是,***「......這是好的做法」***;而不是*:...它是合法的「*它們是兩個不同的問題我有興趣知道釋放空指針的理由,因爲沒有任何東西可以被釋放,在我的腦海中它是沒有意義的,它是一個程序錯誤 – jww 2017-12-22 14:22:34