首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

一维数组进行访问时越界会出现什么状况解决方案

2012-03-20 
一维数组进行访问时越界会出现什么状况C语言里对一维数组进行访问时越界会出现什么状况?比如声明一个一维

一维数组进行访问时越界会出现什么状况
C语言里对一维数组进行访问时越界会出现什么状况?比如声明一个一维数组a[10],那么a[100]的结果怎么是4942,这个数是随机的吗?

[解决办法]
是的,取决于内存环境的状态,
但是请坚决不要这么做
[解决办法]
是~~~~(想回个是内容太短了...)
[解决办法]
结果是不可预见的(读到的是内存中的值,也可能是别的变量的值),也可能引起程序崩溃

[解决办法]

探讨

结果是不可预见的(读到的是内存中的值,也可能是别的变量的值),也可能引起程序崩溃

[解决办法]
探讨

引用:

结果是不可预见的(读到的是内存中的值,也可能是别的变量的值),也可能引起程序崩溃


数组中的值在内存中连续存放

a[1] 相当于*(a+1)

数组的名字a是数组的开始地址的

[解决办法]
Access Violation·~~~我经常会发现这个错误,主要来源于越界和使用了内存指向不正确的指针。
[解决办法]
《深入解析Windows操作系统-Windows Internals》 内存管理
[解决办法]
#include<stdio.h>
main()
{
int a[6],i;
for(i=0;i<6;i++)
a[i]=i;
for(i=0;i<7;i++)
printf("%d\n",a[i]);
}
=========================================================================
运行结果
0
1
2
3
4
5
1638280
===================
随机内存中的一个值吧
[解决办法]
就当是不可控制的吧,这东西不用挖太深
[解决办法]
探讨

是的,取决于内存环境的状态,
但是请坚决不要这么做

热点排行