*.exe 中发生了缓冲区溢出

来源:互联网 发布:绝地求生优化太垃圾了 编辑:程序博客网 时间:2024/04/28 03:32

问题产生的原因:空指针、野指针、内存越界访问。

如如下代码:

int nTotalLength = 0;if (LittleEndian()){for (int i = 0; i < 4; i++)*((char*)(&nTotalLength) + 4 - i - 1) = pSrc[i];}else{for (int i = 0; i < 4; i++)*((char*)(&nTotalLength) + i) = pSrc[i];}

如果把 *((char*)(&nTotalLength) + 4 - i - 1) 写成*(char*)(&nTotalLength + 4 - i - 1) 则会导致内存访问越界,出现以上错误。

0 0