[問題] delete 的問題

看板C_and_CPP (C/C++)作者 (好人超)時間16年前 (2009/04/12 00:14), 編輯推噓1(103)
留言4則, 3人參與, 最新討論串1/1
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

04/12 00:26, , 1F
你應該嘗試是用 1 而不是用 NULL
04/12 00:26, 1F

04/12 00:34, , 2F
我不懂的是為什麼 NULL 會平安無事 XD
04/12 00:34, 2F

04/12 00:45, , 3F
delete 會檢查傳入的參數是不是NULL.
04/12 00:45, 3F

04/12 00:55, , 4F
原來如此 難怪不會出事情...
04/12 00:55, 4F
文章代碼(AID): #19uC7qJA (C_and_CPP)
文章代碼(AID): #19uC7qJA (C_and_CPP)