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

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

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

Показать сообщение отдельно
DU
1480 / 1056 / 45
Регистрация: 05.12.2011
Сообщений: 2,279
22.02.2012, 21:52     Указатели в С++ и Java.
ну нет. выделение на тот же самый участок - это скорее исключение чем правило. такое возможно, но врятли. в общем случае, система выделяет память и возвращает указатель на эту выделенную память. и вот переменной 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) выделилась память на тот же самый участок, раз он только что освободился.
Подчеркнутое - неверно. Память не выделяется на какой-то участок. Выделяется какой-то участок памяти. Надеюсь разница понятна.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru