Показать сообщение отдельно
  #1  
Старый 03.09.2009, 13:10
fimonti fimonti вне форума
Прохожий
 
Регистрация: 20.11.2008
Сообщения: 7
Репутация: 10
По умолчанию Как избавиться от утечки памяти через 'string' в D5?

Всем доброго времени суток!

Кто знает — есть ли какие нибудь средства принудительного освобождения памяти,
занимаемой переменной типа 'string'?

Проблема такая:

Код:
type
  TTestRec = record
    Ident: integer ;
    Name:  string ;
  end;

var
  tr: ^TTestRec ;
begin
  New ( tr ) ;
  tr^.Name := 'bla-bla-bla' ;
......  
  Dispose ( tr ) ;

в результате исполнения этого замечательного кода в памяти остаётся
блок, выделенный для этого самого 'bla-bla-bla'! (Если поле Name не
инициализировать, то, естественно, проблем с памятью нет).

Вопрос: Кто должен чистить память, выделенную под 'string'? Если никто, то
как мне её освободить самому? Что-то я не нашёл, чтобы эта проблема
хоть где-нибудь даже обсуждалась...
Ответить с цитированием