C++ memcpy问题:(

标签 c++ c memcpy

我有一个问题,我的 memcpy 的 src 指针指向错误。

unsigned char* lpBuffer 是一个包含我的字节的缓冲区,我和 olly 核实过。

代码:

 IMAGE_DOS_HEADER iDOSh;
 memcpy(&iDOSh,lpBuffer,sizeof(iDOSh));

问题是 lpBuffer 指向错误,调试器的输出是

dest = 002859E8 RIGHT
src = 000001D8 FALSE

src 指向无效 :( 我不知道为什么

感谢阅读

最佳答案

为什么你用 ollydbg 检查而不是更方便的东西??在您的 IDE 中跟踪您的步骤。当您将指针传递给 memcpy 函数时(因为它是按值传递的),指针的值无法更改变为无效,因此这意味着它在 memcpy 调用之前已经无效.

不幸的是,您的代码仅包含明显的 memcpy 调用,其中“不会出错”。

还要提一下,您的指针的那个奇怪的 0x00000YY 值实际上表明出现了问题,并且您的代码中某处可能有无效的类型转换(或类似的东西)。

关于C++ memcpy问题:(,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2968572/

相关文章:

c++ - 如何减少逻辑表达式?

c# - 哪个更利于可读性?

CS50 Vigenere - 奇怪的图案

c - 如何将 8 位数组写入 1/2 大小的 16 位数组

c++ - 与 memcpy 相比,未对齐内存访问的 reinterpret_cast 的有效用例?

c++ - C++ 中 and() 函数的用途

c++ - 如果元素不适用于代码

c++ - C(或 C++?)语法 : STRUCTTYPE varname = {0};

当原始文件路径有保留字符时崩溃

c++ - 将 int 值存储到 char* - C++?