У меня есть код для получения значения из памяти
Использование адреса и использование смещений, но когда я пытаюсь получить значение, моя программа получает исключение при попытке получить доступ к памяти
у меня есть код:
header
template
T& GetValue(void* address, size_t offset) {
return *reinterpret_cast(reinterpret_cast(address) + offset);
}
class MyClass {
public:
static std::atomic m_pointer;
MyClass();
virtual ~MyClass() = default;
static MyClass* Instance() {
return m_pointer.load();
};
int& state = GetValue(this, 0x0);
char(&name)[40] = GetOffset(this, 0x1C);
};
cpp
std::atomic MyClass::m_pointer(nullptr);
MyClass::MyClass() {
m_pointer.store(reinterpret_cast(0x7f29a0);
}
< /code>
Некоторые вещи, которые я хочу использовать < /p>
Я хочу использовать переменную, а не функцию < /p>
Я хочу использовать Offsett, чтобы избежать необходимости накладываться из одного var в другой < /p>
, как я могу получить значение, используя var < /p>
.printf("value %d", MyClass::Instance().state);
MyClass::Instance().state = 1;
printf("New value %d", MyClass::Instance().state);
Подробнее здесь: https://stackoverflow.com/questions/795 ... mory-value