读书人

memcpy奇怪的有关问题

发布时间: 2012-02-08 19:52:21 作者: rapoo

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在做变址寻址时,动态范围不能太大?解决办法是什么?在线等。




[解决办法]
是不是memcpy在做变址寻址时,动态范围不能太大?没有任何范围限制.

是你的程序 越界了,仔细看一下算法.
确定pTmpVB += i * elemSize;这里对么

读书人网 >C++

热点推荐