指针算术中的访问冲突

指针算术中的访问冲突,第1张

概述随着代码: int nsize;int * buffer;char TargetBuffer[4096];const SIZE_T buffersize = (320*240) * sizeof(int);buffer = (int *) malloc(bufferSize);// fill buffer with datansize = 0;while(nsize < buf 随着代码:

int nsize;int * buffer;char TargetBuffer[4096];const SIZE_T buffersize = (320*240) * sizeof(int);buffer = (int *) malloc(bufferSize);// fill buffer with datansize = 0;while(nsize < buffersize){    // HERE after some loops i get Access Violation    memcpy(TargetBuffer,buffer + nsize,4096);    // do stuff with TargetBuffer    nsize += 4096;}

为什么我会收到访问冲突?我应该改变什么?

解决方法 当您添加缓冲区nsize时,您必须意识到您实际上正在添加缓冲区(nsize *(sizeof(int)),因为当您进行指针运算时它是一个int *.

所以它可能与它有关.尝试通过nsize = 4096 / sizeof(int)或更聪明的东西递增nsize.

总结

以上是内存溢出为你收集整理的指针算术中的访问冲突全部内容,希望文章能够帮你解决指针算术中的访问冲突所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1219843.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-05
下一篇 2022-06-05

发表评论

登录后才能评论

评论列表(0条)

保存