我有一个问题,我的 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/