memcpy奇怪的问题
代码如下
UINT elemSize = 56;
UINT elemCount = 20000;
BYTE * pTmpVB = new BYTE[ elemSize * elemCount ];
float data = 1.0f;
for( UINT i=0; i < elemCount; i++ )
{
pTmpVB += i * elemSize;
memcpy( pTmpVB + 52, &data , sizeof(float) );
}
上述代码出错,报告
写入位置 0x01b10b28 时发生访问冲突
如果把elemCount改很小,例如100就不出错,1000以上就出错。关键在于for循环不能太大。
是不是memcpy在做变址寻址时,动态范围不能太大?解决办法是什么?在线等。