使用代码:

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)或更聪明的方法。

07-27 18:25