《C語言參考手冊》中關於 free() 函數有如下描述。
1)free() 函數的原型
void free(void *ptr);
2)free 函數對以前由 malloc、calloc、或 realloc 所分配的一塊內存區域進行銷毀。free 函數的參數必須是與某個內存分配函數的返回值相同的指針。如果它的參數是個 null 指針,則調用這個函數不會產生任何效果。
既然“如果它的參數是個 null 指針,則調用這個函數不會產生任何效果。”那麼為什麼一般寫成 if(ptr != NULL) free(ptr),而不是直接 free(ptr) 呢?應該不僅是一個書面方面的良好編程風格吧?!
本文出自 “businessman” 博客,請務必保留此出處http://businessman.blog.51cto.com/6260076/1297940