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

Указатели в С++ и Java. - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ многомерный массив http://www.cyberforum.ru/cpp-beginners/thread451080.html
помогите сделать задачу через указатели Сформировать массив типа char размером в 7х5х8 элементов. Проинициализировать его случайными символами от A до Z. Вывести строки, в которых встретилась...
C++ Найдите ошибку... C++ изучать начал недавно. Вот написал программу и столкнулся с проблемой. #include <iostream.h> class Employee { public: void SetAge(int Age) { Age = itsAge; } ... http://www.cyberforum.ru/cpp-beginners/thread451076.html
Определить самое встречающееся число в массиве C++
Определить, какое абсолютное значение встречается в массиве чаще чем другие. диапазон значений -50 - 50, размерность массива 200. То, что я сделала, это задала рандом массив значениями от -50 -...
C++ Отобразить симметрично относительно вертикальной оси секторы матрицы...
Напишите программу, пожалуйста. Заполнить матрицу случайными числами. Отобразить симметрично относительно вертикальной оси секторы матрицы, которые лежат влево и вправо от главной и побочной...
C++ Заменить все элементы с отрицательными значениями средним арифметическим значением всех положительных элементов http://www.cyberforum.ru/cpp-beginners/thread451059.html
Размерность массива (100) Диапазон значений (-100 - +100) Заменить все элементы с отрицательными значениями средним арифметическим значением всех положительных элементов Пожалуйста, напишите...
C++ код грея здравствуйте. помогите пожалуйста с кодом задачи, я не могу додуматься никак. у нас есть n-мерный куб. и надо обойти все вершины это куба с помощью кода Грея(увеличение одного разряда). ну и просто... подробнее

Показать сообщение отдельно
DU
1483 / 1059 / 45
Регистрация: 05.12.2011
Сообщений: 2,279
22.02.2012, 21:52
ну нет. выделение на тот же самый участок - это скорее исключение чем правило. такое возможно, но врятли. в общем случае, система выделяет память и возвращает указатель на эту выделенную память. и вот переменной a присваивается значение этого указателя.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
A* a = 0;
a = new A();
// допустим система выделила память по адресу 0x10000000; т.е. значение a = 0x10000000;
 
 
delete a;
// вернули системе память, которая была выделена по адресу 0x10000000; значение a по прежнему
// равно a = 0x10000000; но обращаться к этой памяти через указатель a - нельзя.
 
a = new A();
// Вот тут система снова выделяет память. и адрес уже может отличаться от 0x10000000;
// Допустим система нашла свободнуя память, которую она может отдать программе по адресу
// 0x20000000; значение a = 0x20000000;
 
//Теперь, все обращения через указатель a будут происходить с байтами, которые начинаются
// c адреса 0x20000000.


Оказывается, просто при new A(10) выделилась память на тот же самый участок, раз он только что освободился.
Подчеркнутое - неверно. Память не выделяется на какой-то участок. Выделяется какой-то участок памяти. Надеюсь разница понятна.
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru