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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
morrinoa
0 / 0 / 0
Регистрация: 16.06.2014
Сообщений: 26
#1

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

02.08.2016, 11:33. Просмотров 138. Ответов 3
Метки нет (Все метки)

Вопрос такого плана, допустим я отвёл в теле метода память под массив 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++
C++ выделение динамической памяти
Выделение динамической памяти C++
C++ Выделение динамической памяти
C++ Выделение динамической памяти
C++ Освобождение и выделение динамической памяти
Выделение динамической памяти C++
Выделение и очистка динамической памяти C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
HenryDukart
 Аватар для HenryDukart
122 / 122 / 35
Регистрация: 05.10.2013
Сообщений: 455
Завершенные тесты: 2
02.08.2016, 11:38     Выделение и использование динамической памяти #2
Цитата Сообщение от morrinoa Посмотреть сообщение
если я сам не чищу память до срабатывания эвента, освободиться ли она по завершению тела, в котором была отведена, будет ли она зарезервирована, или при отводе памяти под другие переменные в промежутке между первым методом и срабатыванием эвента переменным может быть отведена память из под этого, вроде как, занятого массива?
Пока вы не вызовете delete []q (или при использовании интеллектуальных указателей) ваша память останется зарезервированной и ничему не будет отведена.
Croessmah
Модератор
Эксперт CЭксперт С++
 Аватар для Croessmah
12533 / 7095 / 797
Регистрация: 27.09.2012
Сообщений: 17,504
Записей в блоге: 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     Выделение и использование динамической памяти
Ответ Создать тему
Опции темы

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