Показать сообщение отдельно
  #8  
Старый 21.06.2011, 11:05
icWasya icWasya вне форума
Местный
 
Регистрация: 09.11.2010
Сообщения: 499
Репутация: 10
По умолчанию

Цитата:
Сообщение от Yacudzer
Здравствуйте господа, вот назрел вопрос об освобождении памяти занятой типом String.
А если не обязательно PString, то
Код:
type
  PMyInfo = ^TMyInfo;
  TMyInfo = record
    Str:PChar;
    Len:integer;
    Next:PMyInfo;
    end;
var
  MyInfo:PMyInfo = nil;

function GenInfo(Str:String):PMyInfo;
begin
  new(Result);
  Result.Next:=Nil;
  Result.Len:=Length(Str);
  GetMem(Result.Str,Length(Str)); {*}
  Move(Str[1],Result.Str^,Length(Str));
end;

procedure DisposeMyInfo(aMyInfo:PMyInfo);
begin
  FreeMem(aMyInfo.Str);
  dispose(aMyInfo);
end;


begin
{...некоторый код...}
  MyInfo := GenInfo('qwerty');
{...некоторый код...}
  dispose(MyInfo);

end.
Со ссылками на Next разберёшься сам
Ответить с цитированием