有这样一段程序:
/***************************************************
* 09/8/27 by Jack Lee
****************************************************/
#include <stdio.h>
void main()
{
int i,a[10];
for(i=0;i<=10;i++) //for(i=0;i<=8;i++)/ for(i=0;i<=9;i++)
{
a[i]=0;
}
}
* 问题描述: for(i=0;i<=8;i++) 时 ,VS2008在数组a后面预留了2个字节
* 预留字节是因为,之前很多C病毒经常应用数组越界的原理进行操作,而想出的解决办法
* 所以,我使 for(i=0;i<=10;i++)欲覆盖 a[9]和 i(既a[10])
* 从而造成死循环
* 而VC6.0在数组a后面直接存储的是i
* 所以,我使 for(i=0;i<=8;i++)欲 i(既a[8])
* 从而造成死循环