<分区>
为什么以下代码在 i
达到 14
之前有效(printf()
被执行)?实际上,当 i
超过数组的第 10 个元素时,执行应该会失败,不是吗?我什至写:
for(i=0; i<100; i++)
当然我仍然遇到段错误,但所有值都已打印。
#include <stdio.h>
void funcX() {
int i;
int array[10];
printf("\tEntering funcX()\n");
//for(i=0; i<11; i++) { //This works
//for(i=0; i<12; i++) { //This works
//for(i=0; i<13; i++) { //This works
for(i=0; i<14; i++) { //***This fails****
array[i]=i;
printf( "array[i]= %d\n", array[i] );
}
printf("\tLeaving funcX()\n");
}
int main(int argc, char** argv) {
printf("Calling funcX() from main()\n");
funcX();
printf("Returning from funcX()\n");
return(0);
}
使用 gcc -m32
在 RH Linux 上编译。