1 /* bug.c */ 2 #include<stdio.h> 3 int main(void){ 4 int a[10],i; 5 for(i=1;i<=10;i++){ 6 a[i]=0; 7 // printf("%d\n",a[i]); 8 // printf("i=%d\n",i); 9 } 10 return 0; 11 }
原因如下:
/* 数组下标越界,如果 i 的内存地址正好在数组后面,那么当a[10]=0时,会将i自动清零,于是 i <= 10,开启死循环模式。 */
点击展开原因
原文地址:https://www.cnblogs.com/stefango/p/9220313.html
时间: 2024-10-27 20:56:16