![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Что будет со строкой
QAZ © (2010-03-18 14:02:00)в память положена record, в которой присутствует string
string не пустой и в record он ясен фиг храниться как указатель
освобождаем память выделеную под record...
вопросы:
что будет с текстом на который указывал string?
освободится автоматом? или только вместе с закрытием проги?
или нужно сначала сделать string:='' а потом освободить память от record?
Суслик_ (2010-03-18 21:04:00) [1]для dispose ссылка обязательно должна быть типизирована - т.е. PYourRecord, а не просто Pointer.
иначе не высвободит dispose строку, хотя память из под самой записи высвободит.
Sha (2010-03-18 16:55:00) [2]Dispose последовательно вызывает Finalize и FreeMem.
В любом случае если будешь финализировать сам свое хозяйство хуже не будет.
QAZ (2010-03-18 15:49:00) [3]
> Sha © (18.03.10 14:55) [3]
имеенно так и есть
вопрос
если GetMem\FreeMem вроде как используют MemoryManager при этом строку не освобождают
как же тогда работает New\Dispose ?
Sha (2010-03-18 14:55:00) [4]если используешь Dispose(), то необязательно,
если используешь FreeMem(), то обязательно.
KSergey (2010-03-18 14:51:00) [5]> QAZ (18.03.10 14:02)
> в память положена record
> освобождаем память выделеную под record...
Встречные вопросы: хочется увидеть ответ на вопрос "как" по обеим строчкам.
Плохиш (2010-03-18 14:11:00) [6]
> нужно сначала сделать string:=''
ненужно