作者dpqb10 (香菇)
看板C_and_CPP
標題[問題]關於字元陣列
時間Thu Jun 25 17:44:58 2009
char name[2];
cin>>name;
cout<<name;
當我輸入兩個字元時輸出就沒問題,
但三個和四個字元也可以正常輸出,我的問題在於只有宣告兩個字元
為什麼超出也可以輸出?
如果打一長串字元(十幾個字元),就會跑出
"0x35393837"指令參考的"0x35393837"記憶體,這是什麼意思
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 118.160.147.23
推 ianfang:因為C沒邊界檢查~最後是你寫到了受管制的記憶體的錯 06/25 17:49
→ ianfang:重點是 你幹嘛要宣告太小的陣列放你的字串 別這樣搞自己 06/25 17:49
→ netsphere:你可以去Google一下 Buffer overflow 06/25 19:17
→ james732:超過長度沒問題是運氣 06/26 04:14