|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
16.01.2014, 23:04 | #1 |
Пользователь
Регистрация: 19.11.2013
Сообщений: 57
|
Что делать с памятю????
Здраствуйте
Я пишу програму в с++ duilder XE2. У меня такой вопрос после динамического создания елементов память нужно освободить. Создаю TLabel *lb[20] ; TLabel *label; TTabSheet *page; TButton *btn; TComboBox *CBox[400]; При выходе нужно освободить память. delete page; и тд. да? а масив как удалаять delete [] CBox; так? или через for??? Это пишу в FormClose где-то видел в FormClose пишут - Action = caFree; ето фоурычит ???? Эсли да то уже не нужно удалать по указателям??? И можете поделится опитом о освобождении памяти в програмах : как это делать правильно? |
17.01.2014, 10:26 | #2 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,342
|
deleta page - зависит от того, как выделяли память:
delete new TTabSheet; delete [] new TTabSheet[10]; Чуствуете разницу? Массив и указатель - это не одно и то же. CBox у вас это статический массив из указателей. Сам CBox удалять не надо а вот его элементы - через for, но это опять зависит от того, как они были выделены. |
17.01.2014, 14:50 | #3 |
Пользователь
Регистрация: 19.11.2013
Сообщений: 57
|
Создаю так
CBox[ComBox] = new TComboBox(Form1); Эсли я правильно понял удалять нужно так for(int i=0;i<ComBox;i++) delete CBox[i]; |
17.01.2014, 15:11 | #4 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
в вашем случае компоненты уничтожаться вместе с формой к которой приписаны(параметр при создании компонента)
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
18.01.2014, 17:40 | #5 |
Пользователь
Регистрация: 19.11.2013
Сообщений: 57
|
А єсли воспользоватся Action = caFree; то можно не освобождать память через delete ??????
|
18.01.2014, 17:49 | #6 |
Форумчанин
Регистрация: 29.01.2013
Сообщений: 319
|
Lokki23, куда ты клонишь? Всю выделенную память надо освободить. Всё, что ты попросил и тебе дали, надо отдать. Как в туалете: "смой за собой". Можно, конечно, и не смывать, особенно, если возвращаться не планируешь...
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
работа с виртуальной памятю | aank10 | Фриланс | 0 | 18.05.2013 20:08 |
Что делать? | Jobol | Общие вопросы C/C++ | 2 | 29.11.2012 22:02 |
Что мне делать или что надо знать перед тем как начать изучение яз.программирования С/С++? | nokian8 | Свободное общение | 19 | 25.06.2012 23:09 |
Что делать? | Alexxx92 | Microsoft Office Access | 2 | 12.06.2009 14:23 |
Что делать? | mujbIk | Общие вопросы C/C++ | 6 | 27.08.2008 12:24 |