Han*_* N. 3 c pointer-arithmetic
随着代码:
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;
}
Run Code Online (Sandbox Code Playgroud)
为什么我会收到访问冲突?我应该改变什么?
当你添加时,buffer + nsize你必须意识到你实际上正在添加,buffer + (nsize * (sizeof(int))因为它是int *你做指针算术的时候.
所以它可能与它有关.尝试增加nsize nsize += 4096/sizeof(int)或更聪明的东西.
| 归档时间: |
|
| 查看次数: |
145 次 |
| 最近记录: |