→ Feis:但是 "Hello, " 不是 11/16 19:01
→ james732:請查字串用=與strcpy的差別 11/16 19:03
推 yvb:請問您看十三誡時, 有選 4 進去完整看完 04. 的兩頁內容嗎? 11/16 19:41
→ yvb:啊~~~ 剛沒注意看. 原 PO 的困惑看來很可能是2樓所提的情況. 11/16 19:48
推 soheadsome:new char[20]{"hello,would"}; 11/16 20:03
推 EdisonX:new char[20]{"hello,world"}; 這要 c++11 才 support. 11/17 00:04
→ chunhsiang:宣告時的初始化編譯器會好心幫你複製 之後只能用strcpy 11/17 01:04
→ linotwo:因為 s1 是 pointer to char,而當你用 = 去 assign 新的 11/17 01:05
→ linotwo:address 給他的時候,之前配置的 address 會被蓋掉,配置 11/17 01:06
→ linotwo:的空間就變得沒有指標指向它,而成了孤兒。 11/17 01:07
→ linotwo:而問題就在於我們不希望有任何孤兒。 11/17 01:08
→ linotwo:以及後來指向的位址是一個靜態字串,是唯讀的。 11/17 01:09
推 shaopin:'變成孤兒'應該不是seg fault的原因 11/17 01:12
→ Hyozero:謝謝大家 了解不能的原因了 11/17 10:10
→ Hyozero:但應該是變成孤兒而已,但為何會seg fault呢? 11/17 10:11
推 Bencrie:因為 "Hello, " 唯讀 11/17 10:33
→ Hyozero:請問是說 "Hello, " 是 const char * 的緣故嗎? 11/17 10:59
→ purincess:不是 是因為字串本人資料 放在rodata segment 11/17 11:31
→ purincess:read-only的data segment <- 可查關鍵字 11/17 11:32
推 cobrasgo:這時候就要再推"程式設計師的自我修養"了XD 11/18 00:21
→ Hyozero:請問樓上c大說的那本書和這個問題的關係是?? @@ 11/18 09:25
推 yvb:樓上上, 那本是 "程式設計師"的..., 不是 "程式初學者"的..., 11/18 12:28
→ yvb:所以可能太為難原PO了吧... 11/18 12:29