C++-获取特定内存地址的值

C++ - Get value of a particular memory address

本文关键字:地址 内存 获取 C++-      更新时间:2023-10-16

我想知道是否有可能这样做:

unsigned int address = 0x0001FBDC; // Random address :P
int value = *address; // Dereference of address

意思是,有可能在内存中获得特定地址的值吗?

感谢

您可以也应该这样写:

#include <cstdint>
uintptr_t p = 0x0001FBDC;
int value = *reinterpret_cast<int *>(p);

请注意,除非有某种保证p指向整数,否则这是未定义的行为。如果你试图访问一个它不希望你寻址的地址,标准操作系统会杀死你的进程。然而,这可能是独立程序中的常见模式。

(C++的早期版本应该是#include <stdint.h>intptr_t。)