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

Выделение и использование динамической памяти - C++

Восстановить пароль Регистрация
 
morrinoa
0 / 0 / 0
Регистрация: 16.06.2014
Сообщений: 26
02.08.2016, 11:33     Выделение и использование динамической памяти #1
Вопрос такого плана, допустим я отвёл в теле метода память под массив q
C++
1
int q = new int [3];
далее я планирую некий эвент на некий момент времени, и как либо передаю туда адрес на начало этого массива, при этом после я не чищу память и тело метода закрывается, а через некое время срабатывает метод эвента, где я обращаюсь к той самой памяти и после пытаюсь её освободить. Собственно суть вопроса, если я сам не чищу память до срабатывания эвента, освободиться ли она по завершению тела, в котором была отведена, будет ли она зарезервирована, или при отводе памяти под другие переменные в промежутке между первым методом и срабатыванием эвента переменным может быть отведена память из под этого, вроде как, занятого массива?
Догадываюсь что лучше так не делать, что это криво и есть способы проще, просто стало любопытно как это работает, будет ли этот кусок памяти зарезервирован?
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.08.2016, 11:33     Выделение и использование динамической памяти
Посмотрите здесь:

C++ матрица, выделение динамической памяти...
C++ Выделение динамической памяти
Выделение динамической памяти C++ C++
C++ выделение динамической памяти
Выделение динамической памяти C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
HenryDukart
 Аватар для HenryDukart
100 / 100 / 28
Регистрация: 05.10.2013
Сообщений: 400
Завершенные тесты: 2
02.08.2016, 11:38     Выделение и использование динамической памяти #2
Цитата Сообщение от morrinoa Посмотреть сообщение
если я сам не чищу память до срабатывания эвента, освободиться ли она по завершению тела, в котором была отведена, будет ли она зарезервирована, или при отводе памяти под другие переменные в промежутке между первым методом и срабатыванием эвента переменным может быть отведена память из под этого, вроде как, занятого массива?
Пока вы не вызовете delete []q (или при использовании интеллектуальных указателей) ваша память останется зарезервированной и ничему не будет отведена.
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11836 / 6815 / 770
Регистрация: 27.09.2012
Сообщений: 16,900
Записей в блоге: 2
Завершенные тесты: 1
02.08.2016, 11:39     Выделение и использование динамической памяти #3
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от morrinoa Посмотреть сообщение
освободиться ли она по завершению тела, в котором была отведена
Если не сделано освобождение - то нет.
C++
1
int q = new int [3];
оно собирается? Или Вы всё-таки забыли указатель?
Цитата Сообщение от morrinoa Посмотреть сообщение
срабатыванием эвента
Никто, кроме Вас, здесь не знает что к чему в Вашем коде.
Цитата Сообщение от morrinoa Посмотреть сообщение
будет ли этот кусок памяти зарезервирован?
Пока Вы его не освободите.
morrinoa
0 / 0 / 0
Регистрация: 16.06.2014
Сообщений: 26
02.08.2016, 11:42  [ТС]     Выделение и использование динамической памяти #4
Случайно забыл указатель, извините)
Суть понял, спасибо за ответ.
Yandex
Объявления
02.08.2016, 11:42     Выделение и использование динамической памяти
Ответ Создать тему
Опции темы

Текущее время: 09:18. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru