Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/8: Рейтинг темы: голосов - 8, средняя оценка - 4.50
6 / 5 / 1
Регистрация: 01.12.2018
Сообщений: 59

Возможно ли присвоить адрес памяти?

23.09.2019, 20:22. Показов 1846. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет! Я поинтересоваться хочу.
Ранее я занимался разработкой скриптов для игры GTA: San Andreas и пользовался адресами памяти.
К примеру, деньги игрока находятся по адресу 0xB7CE50 - это как вообще? Почему адрес постоянный, а не меняется с перезапуском игры?

Просто интересно, я могу каким-то волшебным образом адрес переменной присвоить что ли? Бред, по-моему, но может что-то не знаю.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
23.09.2019, 20:22
Ответы с готовыми решениями:

Присвоить указателю конкретный адрес
Есть переменная типа str.Допустим там хранится строка "5a32d8".Как это значение присвоить указателю. Т.е. чтобы указатель указывал на...

Присвоить Указателю адрес из массива Char
Например есть такой код: #include <iostream> using namespace std; int main() { int a = 123456789; int *sa =...

Указателю на базовый класс присвоить адрес производного класса
class Point { public: Point(float a=0, float b=0) { x=a; y=b; } protected: float x; float y; };

4
Эксперт .NET
 Аватар для Rius
13136 / 7696 / 1677
Регистрация: 25.05.2015
Сообщений: 23,479
Записей в блоге: 14
23.09.2019, 20:27
C++
1
2
3
4
5
int *pa = reinterpret_cast<int *>(0x8000000);
int *pb = (int *)0x8000000;
 
int a = *pa;
int b = *pb;
0
19500 / 10105 / 2461
Регистрация: 30.01.2014
Сообщений: 17,816
23.09.2019, 21:41
Цитата Сообщение от Alex767676 Посмотреть сообщение
Почему адрес постоянный, а не меняется с перезапуском игры?
Потому что это относительный адрес (относительно базового адреса загрузки исполняемого модуля).
0
Вездепух
Эксперт CЭксперт С++
 Аватар для TheCalligrapher
12943 / 6810 / 1821
Регистрация: 18.10.2014
Сообщений: 17,235
24.09.2019, 05:49
Цитата Сообщение от Alex767676 Посмотреть сообщение
К примеру, деньги игрока находятся по адресу 0xB7CE50 - это как вообще? Почему адрес постоянный, а не меняется с перезапуском игры?
Во-первых, с одной стороны, с чего бы это ему меняться? При каждом запуске программа сначала ведет себя вполне детерминированно, по одному и тому же фиксированному сценарию и "деньги игрока" каждый раз попадают в одно и то же место адресного пространства процесса. Еще можно было бы ожидать "плавания" адресов динамически распределяемых объектов, а в стабильности адресов статическая памяти ничего удивительного нет. Возможно, "деньги игрока" хранятся именно в статической переменной.

Во-вторых, с другой стороны, так на самом деле быть не должно. В современных OC процессы запускаются с рандомизацией адресного пространства (ASLR). Если у вас он постоянный, значит кто-то специально подавляет ASLR для данной программы.
0
2784 / 1937 / 570
Регистрация: 05.06.2014
Сообщений: 5,602
24.09.2019, 06:52
Цитата Сообщение от Alex767676 Посмотреть сообщение
К примеру, деньги игрока находятся по адресу 0xB7CE50 - это как вообще? Почему адрес постоянный, а не меняется с перезапуском игры?
Потому что он в личном виртуальном адресном пространстве игрушки. У другого процесса по тому же самому 0xB7CE50 будут лежать абсолютно другие данные.
Цитата Сообщение от Alex767676 Посмотреть сообщение
Просто интересно, я могу каким-то волшебным образом адрес переменной присвоить что ли?
Можете. Правда, не стандартными, а платформо-зависимыми средствами. В частности, VirtualAlloc вполне позволяет застолбить за собой понравившийся адрес (если его не застолбил раньше кто-то еще).
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
24.09.2019, 06:52
Помогаю со студенческими работами здесь

Как лучше присвоить указателю на указатель адрес массива
Во первых, как ЛУЧШЕ присвоить указателю на указатель адрес массива. int num = {1,3,5,7,6,7,8,1,0,9}; int **ptr = &amp;num; Так...

Адрес в памяти
Что такое in? MyClass obs(4); MyClass *ob; ob = &amp;obs; cout &lt;&lt;ob; //вывод in0012ff60

Возможно ли определить имя переменной, зная ее значение и адрес?
Возник вопрос: возможно ли как-то определить имя переменной, зная, скажем, ее значение и адрес. Если можно, то как вообще это реализовать?

Возможно ли присвоить переменной типа string префикс 'L' при выводе
Возможно ли присвоить переменной типа string префикс 'L' при выводе? Если да, то как. Проблема в том, что слово хранящееся в переменной...

Адрес области памяти
Что такое адрес области памяти? Чем он отличается от адреса переменной? - Дайте, пожалуйста, определение. Искал в интернете и нашел только...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru