使用代码:
int nsize;
int * buffer;
char TargetBuffer[4096];
const SIZE_T buffersize = (320*240) * sizeof(int);
buffer = (int *) malloc(bufferSize);
// fill buffer with data
nsize = 0;
while(nsize < buffersize)
{
// HERE after some loops i get Access Violation
memcpy(TargetBuffer, buffer + nsize, 4096);
// do stuff with TargetBuffer
nsize += 4096;
}
为什么我会收到访问违规?我该换什么?
最佳答案
当你添加buffer + nsize
时,你必须意识到你实际上是在添加buffer + (nsize * (sizeof(int))
,因为当你做指针运算时它是一个int *
。
所以这可能和它有关。尝试将nsize递增nsize += 4096/sizeof(int)
或更聪明的方法。