Сохранение указанного c адреса в указатель в C ++ - PullRequest
0 голосов
/ 10 февраля 2020

Я все еще знакомлюсь с указателями и думал, что напишу простую программу, которая изменяет ценность денег в игре, после получения адреса для указанного значения с помощью чит-движка.

Как сохранить указанный c адрес внутри указателя? Вот моя попытка:

#include <iostream>
using namespace std;

int main() {
    int* ptr = 0x00B7CE50;
    *ptr = 400;

}

Когда я пытаюсь это сделать, я получаю следующую ошибку:

значение типа "int" не может быть использовано для инициализации объекта типа "int * "

1 Ответ

3 голосов
/ 10 февраля 2020

Вы можете привести целое число к указателю, если это поддерживается вашей реализацией C ++ с помощью reinterpret_cast ( условно поддерживается в соответствии со стандартом). Что это за семантика, это определяется реализацией, и я не знаю точного поведения Visual-C ++:

int* ptr = reinterpret_cast<int*>(0x00B7CE50);

Это определенно не сработает, если у вас нет разрешения на запись в этот адрес или адрес из пространства виртуальной памяти другого процесса, который не сопоставлен с текущим процессом.

...