数组赋值的时候没有越界这个说法吗
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++中编译器是不管数组越界这个问题的,
他把这项任务教给了程序员