察看如下代码:
struct TestStruct
{
char str[8];
int i;
};
char str[8] ="abcdefg";
TestStruct test[2]={0,1};
for(int i = 0 ;i<=2;i++)
{
test[i].i = i+1;
printf("&test[%d] = 0x%X/n",i,&test[i]);
}
这段代码给出了的循环有数组越界。但是并不会出现异常,通常这样的错误发现不了。但是后果严重,数组修改了栈的前面,这是灾难性的,因为不知道什么地方被修改了。错误不可怕,可怕的是难以发现,这样的错误一定要避免,否则等着挠头吧。