This question already has an answer here:
c++ function addresses coming out different in attached profiler library than in the subject code base

(1个答案)


3年前关闭。




我想要变量中&add1的值。我尝试了this answer,的建议,但没有给出我期望的结果。
uintptr_t add1Address = reinterpret_cast<uintptr_t>(&add1);

此时,add1Address等于11669784,即0x00B21118
但是我的调试器(和用HxD检查内存)告诉我&add1 = 0x00B217C0
这是怎么回事

完整代码如下
#include "stdafx.h"
#include <iostream>

int add1(int num, int num2);

int add1(int num, int num2)
{
        return num + num2;
}

int main(void)
{

    uintptr_t add1Address = reinterpret_cast<uintptr_t>(&add1);
    std::cout << std::hex << add1Address;

}

我在debugger中看到的是在这里

最佳答案

让我大胆猜测。

这是因为也许您有增量链接。

看看这个:c++ function addresses coming out different in attached profiler library than in the subject code base

07-24 15:39