Run-Time Check Failure #2 - Stack around the variable 'd' was corrupted.
遇到这个警告,请按下面的代码写。
CRgn rgn;
rgn.CreatePolygonRgn( ppoint, num_of_points, ALTERNATE );
DWORD dwSize = rgn.GetRegionData(0, NULL);
BYTE* pData=new BYTE[dwSize];
rgn.GetRegionData((LPRGNDATA)pData,dwSize);//(LPRGNDATA)pData
LPRGNDATA d;
d = (LPRGNDATA)pData ;
RECT * rect = (CRect*)(d->Buffer);
for(UINT i = 0; i< d->rdh.nCount;i++){
RECT r = *(rect);
TRACE1("%d,",r.left);
TRACE1("%d,",r.top);
TRACE1("%d,",r.right);
TRACE1("%d;\r\n",r.bottom);
rect++;
}
delete pData;
本文将详细解释并解决在编程过程中遇到的Run-TimeCheckFailure错误,特别是当变量'd'在堆栈中被损坏时的情况。通过分析代码片段,我们发现了一个可能引发此错误的问题,并提供了相应的解决方案。此外,还展示了如何通过检查和修复内存操作来避免此类错误的发生。
703

被折叠的 条评论
为什么被折叠?



