对于数组,似乎很容易得到一个不对的错误:
short xar[2] = {};
for (int i = 0; i <= sizeof(xar)/sizeof(*xar); ++i) {
xar[i-1]=i*i;
printf("Element i = %d\n", xar[i]);
}元素I=0 元素I=0 元素I= -9272
有什么好办法来查查这个越界案件吗?或者这样的事情通常是如何完成的(似乎编写绑定数组值非常容易!)
发布于 2021-01-31 06:47:47
C作为一种语言,没有提供任何边界检查的规定,超出了“自己跟踪”的范围。因此,除了谨慎之外,没有比这更好的解决办法了。但是,确实存在像阿桑这样的程序,它们可以帮助在运行时检测此类错误。
https://stackoverflow.com/questions/65976460
复制相似问题