C++ - Get value of a particular memory address

六月ゝ 毕业季﹏ 提交于 2019-12-28 05:55:08

问题


I was wondering whether it is possible to do something like this:

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

Meaning, is it possible to get the value of a particular address in memory ?

Thanks


回答1:


You can and should write it like this:

#include <cstdint>

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

Note that unless there is some guarantee that p points to an integer, this is undefined behaviour. A standard operating system will kill your process if you try to access an address that it didn't expect you to address. However, this may be a common pattern in free-standing programs.

(Earlier versions of C++ should say #include <stdint.h> and intptr_t.)



来源:https://stackoverflow.com/questions/12298208/c-get-value-of-a-particular-memory-address

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!