作者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
1F:推 ianfang:因为C没边界检查~最後是你写到了受管制的记忆体的错 06/25 17:49
2F:→ ianfang:重点是 你干嘛要宣告太小的阵列放你的字串 别这样搞自己 06/25 17:49
3F:→ netsphere:你可以去Google一下 Buffer overflow 06/25 19:17
4F:→ james732:超过长度没问题是运气 06/26 04:14