帮我看看这段代码,很简单的功能,为什么会错呀
UINT datalenth = 0;
GetFileDataLenth(m_pFromFile,&datalenth);
BYTE* chToDataBuffer = new BYTE[szDataCount];
BYTE* pchDataBuffer = new BYTE[szDataCount];
UINT nBytesAllRead = 0;
DWORD nBytesRead = 0;
int count=0;
while( nBytesAllRead < datalenth)
{
size_t bytesToRead = (size_t) min(szDataCount,size_t(datalenth - nBytesRead));
m_pFromFile->Read(pchDataBuffer, bytesToRead,&nBytesRead);
int flag = 0;
int left = szDataCount%LPC_FRAME_BETWEEN;
for(flag=0;flag<szDataCount-left;flag += LPC_FRAME_BETWEEN)
memcpy( (chToDataBuffer+flag), (pchDataBuffer+flag),
LPC_FRAME_BETWEEN*2);// 注释掉就不会发生(2)出错 }
delete[] chToDataBuffer;
delete[] pchDataBuffer;//(2) 为什么这里会错
return TRUE;