如上图所示,数组P有5个元素,我故意让它输出6个元素,请注意图中划红线处。结果如图,请问为什么会出现这样的结果?
上述结果使用的编译器是VC6.0
已经发生了越界,可能这就是你想测试的东西。
越界是一种逻辑错误。C/C++不检测对数组的访问是否越界。程序分配内存并不是完全安照你的要求大小分配的, 你申请1个字节,分配给你也是一个区块,指针越界后可能访问的就是这些未使用的内存区域,这种越界错误不会被系统捕捉到。而这片存储并没有被初始化或者是赋值,也可能是被释放过后的存储,输出的数值也是随机的。
好像有点明白了。谢谢你!!!