看板 C_and_CPP 關於我們 聯絡資訊
int main() { int *ptr = NULL; delete ptr; return 0; } 我本來以為這種寫法應該是錯誤的, 但是卻連 run-time error 都不會發生? 這樣的寫法,不是嘗試去釋放 NULL 這個記憶體空間嗎? 但是那個空間又不是 new 來的,應該不允許 delete 才是? visual studio 2005 與 gcc 都能順利結束而沒有任何錯誤…? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 59.104.62.28
wowtiger:你應該嘗試是用 1 而不是用 NULL 04/12 00:26
james732:我不懂的是為什麼 NULL 會平安無事 XD 04/12 00:34
ctrlbreak:delete 會檢查傳入的參數是不是NULL. 04/12 00:45
james732:原來如此 難怪不會出事情... 04/12 00:55