分类: C/C++
2008-09-17 10:58:51
|
-----------------------------------------------------------------------------------
看到的第一反应就是,for循环里面数组越界了,应该为i<10; 运行该错误的程序,会发现是死循环.....
原因: 在VC6.0下按F11, 跟踪&i 和 &name[10]的值,会发现两者相等,也就是说,编译器先分配变量i的空间,然后再分配name数组的空间,两者的栈空间是紧邻的,即name[0]--name[9]为数组name的空间,name[10]的地址其实就是i的地址,当循环至name[10]=0时,其实也将i的值改为了0,从而又回到i=0重新执行,故会出现死循环.