Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
frontez
4 / 4 / 0
Регистрация: 26.04.2013
Сообщений: 124
#1

Запись переменной в определенную ячейку памяти - C++

05.06.2014, 11:01. Просмотров 1071. Ответов 7
Метки нет (Все метки)

C++ (Qt)
1
2
3
4
5
6
7
8
9
10
#include <iostream>
using namespace std;
 
int main()
{
    int a=3;
    int* p=&a;
    cout<<p<<" "<<*p<<endl;
    //system("pause");
}
Программа показывает в какой ячейке памяти хранится переменная а.

Как в определенную ячейку памяти положить нужную переменную, допустим в ячейку памяти 0039F960 положить переменную int b=5; ?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.06.2014, 11:01
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Запись переменной в определенную ячейку памяти (C++):

Принудительная запись значения в ячейку памяти - C++
Есть ячейка памяти используемая некой программой . Как внешне изменить значение этой ячейки по адресу ... При попытке запуска программы ...

Можно ли разместить переменную в нужную ячейку памяти и реально ли хранить данные, разбросанными по памяти? - C++
Добрый день. Не могу найти информацию по двум вопросам : 1) могу ли я разместить переменную в нужную ячейку памяти. Например: int a...

Запись в файл в определенную позицию - C++
Такая проблема. Открываю файл записываю нули туда. Как в определенную позицию вместо нулей вставить значение? Ничего не получается. Файл...

Чтение/запись в файл на определенную позицию - C++
Как в файле узнать , есть ли на том месте куда я хочу записать новое число, какое либо еще число? и если есть, занести следующее число...

Как обнулить указатель на одну ячейку в динамически-выделенной памяти? - C++
Выделю память под 10 элементов: int* p = new int; Наполняю значениями: for(int i = 0; i&lt;10; i++) { p = i; } Можно...

как в динамический массив добавить еще одну ячейку памяти? - C++
Всем привет! как в динамический массив добавить еще одну ячейку памяти? То бишь имеется какой нибудь динамический массив a и надо чтоб...

7
Renji
1925 / 1323 / 298
Регистрация: 05.06.2014
Сообщений: 3,808
05.06.2014, 11:04 #2
Видимо
C++
1
2
int*p=(int*)0x0039F960;
*p=5;
0
frontez
4 / 4 / 0
Регистрация: 26.04.2013
Сообщений: 124
05.06.2014, 11:12  [ТС] #3
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
#include <iostream>
using namespace std;
 
int main()
{
    
    int*p=(int*)0x0039F960;
    *p=5;
    cout<<p<<" "<<*p<<endl;
    system("pause");
}
Ошибка: Необработанное исключение в "0x001314c8" в "123.exe": 0xC0000005: Нарушение прав доступа при записи "0x0039f960".
0
SatanaXIII
Супер-модератор
Эксперт С++
5616 / 2651 / 246
Регистрация: 01.11.2011
Сообщений: 6,530
Завершенные тесты: 1
05.06.2014, 11:18 #4
Цитата Сообщение от frontez Посмотреть сообщение
Как в определенную ячейку памяти положить нужную переменную, допустим в ячейку памяти 0039F960 положить переменную int b=5; ?
Никак, если только эта область не принадлежит вашему приложению. За этим следит операционная система.
0
Renji
1925 / 1323 / 298
Регистрация: 05.06.2014
Сообщений: 3,808
05.06.2014, 11:21 #5
Ошибка: Необработанное исключение в "0x001314c8" в "123.exe": 0xC0000005: Нарушение прав доступа при записи "0x0039f960".
В современных ОС 0x0039f960 может быть защищен от записи, вести в середину вашей коллекции порнографии (отображение файла в память) или вообще никуда не вести. При этом для разных приложений по 0x0039f960 будут лежать разные данные/порнография/рукава от жилетки (как это работает - тема для отдельного разговора). Поэтому вы должны убедиться что запись в 0x0039f960 доступна, иначе ничего работать не будет в принципе.
0
frontez
4 / 4 / 0
Регистрация: 26.04.2013
Сообщений: 124
05.06.2014, 11:36  [ТС] #6
Ну тогда как сделать проверку свободная ли определенная ячейка памяти, и если свободна то как записать туда переменную?
0
Renji
1925 / 1323 / 298
Регистрация: 05.06.2014
Сообщений: 3,808
05.06.2014, 11:48 #7
Ну тогда как сделать проверку свободная ли определенная ячейка памяти, и если свободна то как записать туда переменную?
1) MmProbeAndLockPages.
2) Пытаться ловить необработанное исключение (курить try и catch).
3)
C++
1
2
3
int yacheyka;
int*p=&yacheyka;
*p=5;
С вероятностью 99% иных записей по указателю вам не нужно. А если и нужно, все равно не хватит знаний на реализацию.
0
RaiaNKnight
96 / 70 / 7
Регистрация: 29.06.2011
Сообщений: 465
Записей в блоге: 1
05.06.2014, 12:00 #8
Может вы задачу неправильно поставили? Зачем вам вообще такое понадобилось?
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.06.2014, 12:00
Привет! Вот еще темы с ответами:

Посимвольная запись в каждую ячейку символьного массива - C++
Добрый вечер, столкнулся с такой проблемой: считываю данные из файла в поток и оттуда уже в массив, но по неведомой мне причине в одну...

Тип памяти переменной float - C++
Доброго время суток всем! помоги найти ответ на вопрос, что за тип памяти переменной и вообще какие они бывают в С++.За ранее спасибо!

Осовобождение памяти из под static переменной - C++
Суть проблемы такова: имеется рекурсивная ф-ция(в классе), в ней есть объект string типа, после выполнения ф-ции объект возвращается ф-цией...

Написать программу исследования памяти вблизи переменной X. - C++ - C++
Написать программу исследования памяти вблизи переменной X.


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

Или воспользуйтесь поиском по форуму:
8
Yandex
Объявления
05.06.2014, 12:00
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru