以下代码在vs2005下测试
struct st
{
int n;
DWORD dwID[12];
st()
{
memset(dwID, 0, sizeof(st)); //内存越界了,dwID应该为this就不会越界
n = 0;
}
}
void test()
{
st tt;
printf("run");
return; //内存越界导致堆栈发生错误
}
以下代码在vs2005下测试
struct st
{
int n;
DWORD dwID[12];
st()
{
memset(dwID, 0, sizeof(st)); //内存越界了,dwID应该为this就不会越界
n = 0;
}
}
void test()
{
st tt;
printf("run");
return; //内存越界导致堆栈发生错误
}