powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / динамич. распределение памяти
7 сообщений из 7, страница 1 из 1
динамич. распределение памяти
    #33613669
/*я*/
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Господа, подскажите кто-нибудь чем отличаются между собой эти команды:
Код: plaintext
1.
double *A = new double( 10 . 5 );
double A = *new double( 10 . 5 );
...
Рейтинг: 0 / 0
динамич. распределение памяти
    #33613759
Петров Алексей
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> double A = *new double(10.5);
В этом случае получаешь утечку памяти размером в sizeof(double), т.к. память
выделил и присвоил значение с этого адреса переменной, после чего указатель
на эту память потерял.


Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
динамич. распределение памяти
    #33613763
_Балтика
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
/*я*/Господа, подскажите кто-нибудь чем отличаются между собой эти команды:
Код: plaintext
1.
double *A = new double( 10 . 5 );
double A = *new double( 10 . 5 );

1) распеределяется память под переменную double, переменная инициализируется и адрес распределенной области памяти заносится в указатель на double - A.
2) распеределяется память под переменную double, переменная инициализируется, память навсегда теряется для программиста, а значение 10.5 присваивается переменной A (типа double).
...
Рейтинг: 0 / 0
динамич. распределение памяти
    #33613777
muk07
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В первом случае размещается в памяти double и А указывает на него.
Во втором - размещается double и его значение присваивается переменной А.
Таким образом, одновременно существует два экземпляра - new double в куче и переменная А в программном стеке. Причем до double из кучи уже невозможно добраться, т.к. указатель на него не был снят. Применение 2-й строки может только присниться в кошмаре программиста.
...
Рейтинг: 0 / 0
динамич. распределение памяти
    #33613780
muk07
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Смешно, пока печатал ответ пришло два таких же.
...
Рейтинг: 0 / 0
динамич. распределение памяти
    #33613999
/*я*/
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо, понял!
...
Рейтинг: 0 / 0
динамич. распределение памяти
    #33614032
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
// Это нормальное выделение памяти. Выделение одного объекта типа double.
double *A = new double( 10 . 5 );

// Это - гарантированная потеря выделенной памяти.
// Выделение одного объекта типа double, разименование его и 
// использование его значения для инициализации другой переменной
// типа double. Выделенная память гарантированно теряется.
double A = *new double( 10 . 5 );

// Можно еще так писать :
double &a = *new double( 10 . 5 );
...
delete &a;

// да только вот чем это от указателя отличается - не понятно, 
// а мозги людям запудришь.
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / динамич. распределение памяти
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]