Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > C++ Builder > Освобождение памяти |
Автор: oper54 29.6.2006, 17:41 | ||||||
Доброе время суток... Вот какая задачка есть структура типа
для нее функция
есть класс
вот в чем загвоздка если не инициировать елементы структуры DATA то функция clear отработает не корректно будит пытатся очистить не выделенную память... |
Автор: 586 29.6.2006, 17:51 |
ИМХО, функция clear не нужна. Как создавал структура DATA, так и удаляй. |
Автор: Romikgy 29.6.2006, 18:14 |
oper54, http://www.freebsd.org.ua/man/malloc.3.html Учтите, что malloc() НЕ заполняет выделенную память нулями. т.е. эти указатели могут содержать мусор, и ссылка на мусор уничтожатся не будет |
Автор: Romikgy 29.6.2006, 18:37 |
А на кой тебе это вот в нем и выделяй и очищай дабы потом глюков небыло и имхо лучше юзать new & delete |
Автор: maxim1000 29.6.2006, 18:47 |
заполнять нулями сразу после создания |
Автор: vvpC 29.6.2006, 20:49 | ||
откуда free знает про то что выделена была память или нет.. ![]()
![]() ![]() |
Автор: maalan 30.6.2006, 11:20 | ||||||||
как правильно заметил vvpC
имхо, теперь функция clear вообще не нужна
и остается вопрос, что будет, если написать, например, так:
тут память очищать не надо! а очистка сработает! почти наверняка вылетит exception |
Автор: oper54 30.6.2006, 13:35 | ||
спасибо всем![]() Добавлено @ 13:38
такого быть не может - структура, покрайней мере, в моей программе на прямую использоваться будет только для считывания данных, и то не напрямую, а через класс... просто не продумал сразу, сказали сделать быстро вот и получилось "ЭТО", а менять что то уже лень ![]() |