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

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

Войти
Регистрация
Восстановить пароль
 
kentaw
418 / 126 / 4
Регистрация: 24.02.2009
Сообщений: 1,123
#1

получить значению ячеека 0x22ff20 - C++

02.03.2011, 13:05. Просмотров 657. Ответов 10
Метки нет (Все метки)

В ячееке 0x22ff20 есть значения 123. Как получить эту значению?
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <cstdlib>
#include <iostream>
 
using namespace std;
 
int main(int argc, char *argv[])
{
    int hex=0x22ff20;
    cout<<*hex<<endl;
    system("PAUSE");
    return EXIT_SUCCESS;
}
Эта выдает ошибка...
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.03.2011, 13:05     получить значению ячеека 0x22ff20
Посмотрите здесь:

Передача по значению - C++
#include &quot;stdafx.h&quot; #include &quot;iostream&quot; #include &quot;conio.h&quot; #include &quot;locale&quot; using namespace::std; struct Distance { int...

Массив по значению - C++
Не понимаю суть самой задачи. Разъясните пожалуйста, и подскажите с чего начать! &quot;Написать программу, которая позволит ввести с...

передача массива по значению - C++
Такая проблема Написал лабу &quot;решение СЛУ методом Гаусса&quot; Все корни идет верно. Но при проверке корней, обнаружил, что исходная матрица...

Передача по значению и по адрессу - C++
// function formal actual.cpp : Defines the entry point for the console application. // #include &quot;stdafx.h&quot; #include &quot;iostream&quot; ...

Обращение к значению элемента - C++
Всех приветствую!Подскажите пожалуйста,как обратится к значению элемента цикла (i)?!Что необходимо ещё создать? Например цикл for...

Передача по ссылке и по значению - C++
Эта тема стара как мир, но я хотел уточнить одну вещь. QBluetoothAddress* address = new QBluetoothAddress(&quot;00:1A:7D:DA:71:15&quot;); ...

Сортировка map по значению - C++
Добрый день:) Как можно отсортировать map по возрастанию/убыванию float(неважно ключ это или значение) Программа- частотный анализ...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ForEveR
В астрале
Эксперт С++
7969 / 4731 / 320
Регистрация: 24.06.2010
Сообщений: 10,539
Завершенные тесты: 3
02.03.2011, 13:17     получить значению ячеека 0x22ff20 #2
Но лично у меня там ничего нет)

C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <cstdlib>
#include <iostream>
 
using namespace std;
 
int main(int argc, char *argv[])
{
    int* hex=(int*)(0x22ff20);
    cout<<*hex<<endl;
    system("PAUSE");
    return EXIT_SUCCESS;
}
kentaw
418 / 126 / 4
Регистрация: 24.02.2009
Сообщений: 1,123
02.03.2011, 13:55  [ТС]     получить значению ячеека 0x22ff20 #3
Не получилос.
Ситуация такая:
5 дня тому назад написал такая код и скомпилировал
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <cstdlib>
#include <iostream>
 
using namespace std;
 
int main(int argc, char *argv[])
{
    int *x, y;
    y=123;
    x=&y;
    cout<<"Adres y: "<<x<<endl<<"Znacenie y: ="<<*x<<endl;
    system("PAUSE");
    return EXIT_SUCCESS;
}
Сегодня запустил этого екзеншика, ШОК!, 123 прячится там...

Добавлено через 16 секунд
Не получилос.
Ситуация такая:
5 дня тому назад написал такая код и скомпилировал
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <cstdlib>
#include <iostream>
 
using namespace std;
 
int main(int argc, char *argv[])
{
    int *x, y;
    y=123;
    x=&y;
    cout<<"Adres y: "<<x<<endl<<"Znacenie y: ="<<*x<<endl;
    system("PAUSE");
    return EXIT_SUCCESS;
}
Сегодня запустил этого екзеншика, ШОК!, 123 прячится там...

Добавлено через 10 минут
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <cstdlib>
#include <iostream>
 
using namespace std;
 
int main(int argc, char *argv[])
{
    int* hex=(int*)(0x22ff20);
    cout<<*hex<<endl;
    system("PAUSE");
    return EXIT_SUCCESS;
}
это код выдает 16

Добавлено через 16 секунд
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <cstdlib>
#include <iostream>
 
using namespace std;
 
int main(int argc, char *argv[])
{
    int* hex=(int*)(0x22ff20);
    cout<<*hex<<endl;
    system("PAUSE");
    return EXIT_SUCCESS;
}
это код выдает 16
Digit@ll
Brainsbreaker
877 / 355 / 29
Регистрация: 01.02.2011
Сообщений: 1,541
02.03.2011, 13:58     получить значению ячеека 0x22ff20 #4
kentaw, ты что на приколе?
kentaw
418 / 126 / 4
Регистрация: 24.02.2009
Сообщений: 1,123
02.03.2011, 14:30  [ТС]     получить значению ячеека 0x22ff20 #5
нет не шучу и не понимаю как это происходить. Может быт мой код
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <cstdlib>
#include <iostream>
 
using namespace std;
 
int main(int argc, char *argv[])
{
    int *x, y;
    y=123;
    x=&y;
    cout<<"Adres y: "<<x<<endl<<"Znacenie y: ="<<*x<<endl;
    system("PAUSE");
    return EXIT_SUCCESS;
}
любит адресу 0x22ff20.

 Комментарий модератора 
Хватит повторять свои сообщения!
kazak
3033 / 2354 / 155
Регистрация: 11.03.2009
Сообщений: 5,401
02.03.2011, 14:39     получить значению ячеека 0x22ff20 #6
kentaw, это же не реальный физический адрес, а смещение внутри области памяти выделенной для программы. В принципе сдесь нет ничего удивительного.
kentaw
418 / 126 / 4
Регистрация: 24.02.2009
Сообщений: 1,123
02.03.2011, 15:23  [ТС]     получить значению ячеека 0x22ff20 #7
Цитата Сообщение от kazak Посмотреть сообщение
kentaw, это же не реальный физический адрес, а смещение внутри области памяти выделенной для программы. В принципе сдесь нет ничего удивительного.
Спасибо, понял. И еще вопрос возникает: Тогда почему КАЖДЫЙ ДЕНЬ при запуске, выдает тот же адрес?
Kastaneda
Форумчанин
Эксперт С++
4479 / 2841 / 227
Регистрация: 12.12.2009
Сообщений: 7,224
Записей в блоге: 1
Завершенные тесты: 1
02.03.2011, 17:27     получить значению ячеека 0x22ff20 #8
Цитата Сообщение от kentaw Посмотреть сообщение
Тогда почему КАЖДЫЙ ДЕНЬ при запуске, выдает тот же адрес?
Цитата Сообщение от kazak Посмотреть сообщение
kentaw, это же не реальный физический адрес, а смещение внутри области памяти выделенной для программы. В принципе сдесь нет ничего удивительного.
kentaw
418 / 126 / 4
Регистрация: 24.02.2009
Сообщений: 1,123
02.03.2011, 18:54  [ТС]     получить значению ячеека 0x22ff20 #9
ок. понял всем спасибо
KuKu
1556 / 1034 / 76
Регистрация: 17.04.2009
Сообщений: 2,974
02.03.2011, 18:59     получить значению ячеека 0x22ff20 #10
А абсолютный адрес можно узнать как-то ?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.03.2011, 19:12     получить значению ячеека 0x22ff20
Еще ссылки по теме:

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

Передача fstream по значению - C++
Как то он себя странно поводит, не хочет указатель на переменную fstream принимать по значению переменную, может не правильно пишу?...

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

Сортировка map по значению - C++
Здорова господа!!! Есть массив: map&lt;string, int&gt; m; m=3; m=2; m=10; Нужно найти максимальный элемент массива? Пытаюсь...

Прибавить к значению переменной единицу - C++
задается символьная переменная к переменной прибавляется 1 выводится прежнее состояние и получиное пешить на с++


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

Или воспользуйтесь поиском по форуму:
Kastaneda
Форумчанин
Эксперт С++
4479 / 2841 / 227
Регистрация: 12.12.2009
Сообщений: 7,224
Записей в блоге: 1
Завершенные тесты: 1
02.03.2011, 19:12     получить значению ячеека 0x22ff20 #11
Цитата Сообщение от KuKu Посмотреть сообщение
А абсолютный адрес можно узнать как-то ?
Да, можно. Нужно взять значение сегментного регистра (любого, под виндой они все равны) и смещение, и проделать с ними определенные манипуляции. Не простое сложение, а как то по хитрому там это делается, я не помню. Это легко можно нагуглить.

Добавлено через 6 минут
Виртуальный адрес при страничном распределении может быть представлен в виде пары (p, s), где p - номер виртуальной страницы процесса (нумерация страниц начинается с 0), а s - смещение в пределах виртуальной страницы. Учитывая, что размер страницы равен 2 в степени к, смещение s может быть получено простым отделением k младших разрядов в двоичной записи виртуального адреса. Оставшиеся старшие разряды представляют собой двоичную запись номера страницы p.
При каждом обращении к оперативной памяти аппаратными средствами выполняются следующие действия:
1.на основании начального адреса таблицы страниц (содержимое регистра адреса таблицы страниц), номера виртуальной страницы (старшие разряды виртуального адреса) и длины записи в таблице страниц (системная константа) определяется адрес нужной записи в таблице,
2.из этой записи извлекается номер физической страницы,
3.к номеру физической страницы присоединяется смещение (младшие разряды виртуального адреса).
Чтоб это понять нужно знать, что такое страничное распределение памяти.
Yandex
Объявления
02.03.2011, 19:12     получить значению ячеека 0x22ff20
Ответ Создать тему
Опции темы

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