首页 新闻 搜索 专区 学院

C语言中数组越界依然能输出数据,是怎么回事?

0
悬赏园豆:5 [已解决问题] 解决于 2013-04-20 10:52

c语言中有一个三维数组Cres[15][15][11];

我输出Cres[i][j][-1]、Cres[i][j][-20]都有结果输出,(i,j=0~14),将其改成C#语言后就报错了?

Cres[i][j][-1]和Cres[i][j][-20]都是输出的哪里的结果,数组里面的数据时怎么存储的?

c# c
ZGHAPPY的主页 ZGHAPPY | 菜鸟二级 | 园豆:207
提问于:2013-04-18 10:10
< >
分享
最佳答案
0

因为c不会检查数组越界,所以写c需要比c#更小心谨慎,一般c中越界后读出的数据都是随机的,可能只是内存的一个片段也可能是别的数组,如果是指针还会crash。所以c的访问不能越界,c#虽然不需要关心越界的问题但是很明显效率没c高,而且我觉得不管什么语言越界访问都是不应该的。

收获园豆:5
today4king | 老鸟四级 |园豆:3267 | 2013-04-18 11:19
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册