看板 C_and_CPP 關於我們 聯絡資訊
我在這個網頁 http://aszt.inf.elte.hu/~gsd/halado_cpp/ch03s03.html 看一個範例 { int *ip = new int; // start of life *ip int &ir = *ip; // start of scope ir, ir bound to *ip delete ip; // end of life *ip here ir = 5; // bad } // end of scope ir 我在 vs2005下 和 g++4.6 下 ir = 5 這行編譯器都不會報錯 不太懂為啥這樣賦值過去不會 segmentfault 小小疑問 感謝大家 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 59.120.189.230
james732:編譯器"不報錯",跟"不會segmentfault"是兩回事啊XD 06/21 12:00
james732:你這段程式對編譯器來說是"語法正確"的 06/21 12:02
iamstudent:編譯器必須忠實反應使用者下的命令,頂多給點警告而已 06/21 12:06
fuha:那不會segmentfault 只是剛好囉? 06/21 12:45
james732:可以看我在 #1DKhEJMu 這篇的推文 06/21 12:47
james732:這種寫法就只是剛好房東沒生氣而已 XDDDD 06/21 12:47
meconin:這段源碼翻成匯編沒什麼困難,編譯器頂多警告,完全沒錯 06/21 14:00
diabloevagto:compiler會叫才是幸福,不會叫才是痛苦 06/21 15:13
legnaleurc:不要欺騙 compiler, 它會對你復仇 06/21 15:50
BlazarArc:沒錯 其實seg也算容易追 麻煩的是 runtime 也毫無訊息 06/21 15:51
BlazarArc:然後頭就禿了... 06/21 15:51
leiyan:2010不讓你跑囉 06/21 15:51
Favonia:其實編譯器亂做無所謂,因為程式設計師已經弄錯了... 06/22 07:47
anpig:不會segfault只是因為馬子分手之後還沒被把走而已... 06/22 08:33