首页 新闻 会员 周边

使用数组常犯的错误

0
[已解决问题] 解决于 2012-03-25 11:57

 

如上图所示,数组P有5个元素,我故意让它输出6个元素,请注意图中划红线处。结果如图,请问为什么会出现这样的结果?

C++
问题补充:

上述结果使用的编译器是VC6.0

sarmn的主页 sarmn | 初学一级 | 园豆:133
提问于:2012-03-24 21:24
< >
分享
最佳答案
0

已经发生了越界,可能这就是你想测试的东西。

越界是一种逻辑错误。C/C++不检测对数组的访问是否越界。程序分配内存并不是完全安照你的要求大小分配的, 你申请1个字节,分配给你也是一个区块,指针越界后可能访问的就是这些未使用的内存区域,这种越界错误不会被系统捕捉到。而这片存储并没有被初始化或者是赋值,也可能是被释放过后的存储,输出的数值也是随机的。

zsounder | 老鸟四级 |园豆:2819 | 2012-03-24 23:45

好像有点明白了。谢谢你!!!

sarmn | 园豆:133 (初学一级) | 2012-03-25 11:33
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册