gpt4 book ai didi

c++ - 用 std::addressof 存储指针地址

转载 作者:太空宇宙 更新时间:2023-11-04 15:17:56 25 4
gpt4 key购买 nike

我可能在这里遗漏了一些东西。我需要存储新分配的内存块的指针地址。

我这样做:

    void* buffer = _aligned_malloc(4096,4);
assert(buffer);
//save its original address:
void* initialAddress = (void*) std::addressof(buffer );

initialAddress 保存的地址与缓冲区的地址不同。

只有当我分配缓冲区指针时,我才会得到相同的地址(这当然是正确的事情):

    initialAddress = buffer;

那么,为什么 std::addressof(buffer) 显示不同的地址?我正在使用 VS2012 进行调试。也许这是指针的地址而不是缓冲区的地址?

最佳答案

Maybe that's address of the pointer and not the address of the buffer?

就是这样。执行 std::addressof(buffer) 与执行 &buffer 相同(但它们有时可能意味着不同的东西),所以您只是获取 的地址>buffer 指针,是一个void**。如果您只想要 buffer 的拷贝,请执行 initialAddress = buffer;

关于c++ - 用 std::addressof 存储指针地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27294221/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com