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

Как инициализировать указатель произвольным адресом? - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Что происходит с освободившейся от указателей памятью? [gcc-4.7.2] http://www.cyberforum.ru/cpp-beginners/thread833310.html
Что происходит в следующих случаях с памятью выделенную под переменные? 1) Объявление в операторных скобках: { int variable; } 2) Присвоение адреса указателю: int *i_var; { int variable...
C++ Передача Указателя На Двумерный Массив В Функцию Как изменить код, чтобы массив объявлялся в main() и передавался в input_strings(). Код: #define MAXLENGTH 129 #define MAXSIZE 20 char arr_str; int input_strings(){ int i,n; http://www.cyberforum.ru/cpp-beginners/thread833308.html
C++ Не сортирует.В чем ошибка?
и ещё нужно добавить средний бал по каждому студенту #include <iostream> #include <string.h> #include <cstring> #include <stdio.h> #include <fstream> #include <sstream> #include <conio.h>...
Как зная площадь треугольника установиться его координаты. C++
Как зная площадь треугольника установиться его координаты. Естественно любые. Например площадь = 5 тогда координаты : 0 0 4 2 5 0
C++ Функции. Написать функцию, удаляющую элемент массива http://www.cyberforum.ru/cpp-beginners/thread833276.html
Написать функцию, удаляющую элемент массива. Все элементы после него сдвигаются на один влево, а последний равен нулю.
C++ Сортировка, метод шелла Всем доброй ночи, задача, дан список студентов и у каждого 5 оценок, отсортировать сумму оценок по убыванию и данные в новый файл, вот мой код. Помогите исправить ошибку #include <iostream>... подробнее

Показать сообщение отдельно
taras atavin
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
17.05.2014, 15:25
Цитата Сообщение от Kastaneda Посмотреть сообщение
Суть в следующем - защита происходит по CPL и по флагам в записи каталогах/таблицах страниц.
А кто каталоги формирует?

Добавлено через 1 минуту
Цитата Сообщение от Kastaneda Посмотреть сообщение
Когда ОС только загружается, она загружается в real mode, в этом режиме формируются каталоги/таблицы страниц, где и выставляются нужные флаги. Потом код загрузчика переводит процессор в protected mode (если мы говорим о 32х битных ОС) и дальше уже загружается непостредственно ОС.
А ничего, что без возможности манипулировать таблицами каталога страниц многозадачная ось не сможет дефрагментировать свободную память и быстро свалится?

Добавлено через 2 минуты
Цитата Сообщение от Kastaneda Посмотреть сообщение
и когда эта программа попробует обратиться туда, куда не просят, то защита сработает на уровне процессора (будет GP exception), задача ОС всего лишь корректно обработать это исключение. Сама ОС защитой такого уровня не занимается.
Нет. Задача оси распределить память. Кстати, а как вообще загружать пользовательский процесс, если вся память распределена ещё системным загрузчиком?

Добавлено через 5 минут
Цитата Сообщение от Kastaneda Посмотреть сообщение
Незнаю, что такое TR-DOS, но в real mode нужно сложить базу из сегментного регистра умноженную на 16 со смещением, чтоб получить физический адрес. В других режимах все еще сложнее.
Операционная система дисковой версии спектрума, чей камень вообще не знаком с режимами, а все адреса там физические. На спектруме вопрос о том, сегментная ли у него память, или плоская, - это лишь вопрос интерпретации адресного регистра в качестве регистровой пары восьмибитных регистров, или одиночного шестнаднцатибитного регистра, поддерживаются оба варианта инкремента/декремента адресов. Смещение восьмибитная, адрес шестнадцатибитный, множитель базы 256.

Добавлено через 6 минут
Цитата Сообщение от programina Посмотреть сообщение
А если наделать очень много однобайтовых переменных в весь обьем доступной памяти, то шансы угадать увеличатся?
Зачем вообще угадывать? Или читай маны по статическим адресам, или
C++
1
2
3
4
int x;
int *p;
p=&x;// Здесь программа сама помещает адрес переменной в указатель
std::cout<<*p; //А здесь по этому адресу читаем данные и выводим их в поток
, или
C++
1
2
3
4
int *p;
p=new int;// Здесь уже система помещает адрес переменной в указатель, при этом создавая переменную, имени такая переменная не имеет
std::cout<<*p; //А здесь по этому адресу читаем данные и выводим их в поток
delete p; // После использования надо переменную удалить, а указатель на неё освободить
.

Добавлено через 9 минут

Не по теме:

Прочитал надпись на заборе. Отсылку не понял.
Облака на небе сложились во фразу: «А чего сложного? <a href="иди в гугл">fdfds</a>.».



Добавлено через 2 часа 17 минут
И не забывайте о том, что ТС не сказала, что пишет. Если как раз ось, то физический адрес вполне доступен. А если ещё и реального режима, то ещё смешней.
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru