【发布时间】:2013-05-07 17:30:56
【问题描述】:
为什么没有这个段错误?
#include <stdio.h>
int main()
{
int i;
int arr[] = {1, 2, 3, 4};
for(i=0;i<8;i++)
{
arr[i] = i;
printf(" %d", arr[i]);
}
printf("\n");
return 0;
}
但当我在 for 循环中将 8 替换为 9 时,它确实如此。
注意:我在 32 位 crunchbang linux 上试用它
【问题讨论】:
-
读取数组末尾是未定义的行为。未定义的行为可以是任何东西;它不一定必须进行段错误。
-
纯属运气。它确实打印了一些垃圾号码,不是吗?
-
另一个过于本地化的骑手... :'(
标签: c segmentation-fault