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

数组赋值的时候没有越界这个说法吗,该如何处理

2012-02-07 
数组赋值的时候没有越界这个说法吗chars1[40]for(size_ti0i100++i)s1[i]a这么这样也对啊[解决办法]

数组赋值的时候没有越界这个说法吗
char   s1[40]   ;
for(size_t   i   =   0   ;i   <   100   ;   ++i)
        s1[i]   =   'a '   ;
这么这样也对啊

[解决办法]
为什么不对?最多就是越界 问题多多

[解决办法]
char s1[40] ;
for(size_t i = 0 ;i < 100 ; ++i)
s1[i] = 'a ' ;
这么这样也对啊
===============
i < 100??
这样怎么可以阿?
[解决办法]
char s1[40] ;
for(size_t i = 0 ;i < 100 ; ++i)
s1[i] = 'a ' ;

这样做当然是可以的,C/C++编译器是不会给你作边界检查的。但是很快程序就会出错的。因为你把堆栈的内容搞坏了。


[解决办法]
越界就越界了啊
就说中午本来发给你三个馒头吃,结果你没吃饱,把你哥们的偷吃了几个
你哥们没发现无所谓,发现了可能会扁你一顿,也可能不会扁你一顿

不过拿别人东西吃总不是作风
[解决办法]
一般这种问题编译不会有问题的,但是运行就不好说了,哈哈 我刚学那会经常出现越界错误,然后运行就报错,郁闷啊 还是人最可靠
[解决办法]
C/C++编译器又不会做边界检查,但你把其他的内存占用了,到运行时就可能会出错了
[解决办法]
编译器说:只要你敢,你就去做,我不管
[解决办法]
这是C和C++的一个诟病,历来被后人道之,如果你要找个能检查是否越界的类的话,
建议你去看一下boost中的arry。反正在C和C++中编译器是不管数组越界这个问题的,
他把这项任务教给了程序员

热点排行