看板 C_and_CPP 關於我們 聯絡資訊
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