Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.04.16;
Скачать: CL | DM;

Вниз

PChar утечка памяти   Найти похожие ветки 

 
Bruce   (2006-04-02 20:35) [0]

Здарствуйте!
Есть ли утечка памяти в данном коде?
var
 //s1: string;
 pText, pResultText: PChar;
 ms: TMemoryStream;
begin
 Result := false;
 ms := TMemoryStream.Create;
 pResultText := nil;
 try
   pText := PChar(AText);
   ms.Write(pText^, Length(pText));
   ms.Position := 0;
   if ProcessData(ms) then // производим опр. действия над потоком
   begin
     GetMem(pResultText, ms.Size);
     ms.Read(pResultText^, ms.Size);
     AText := pResultText;
     Result := true;
   end;
 finally
   ms.Free;
   if pResultText <> nil then
     FreeMem(pResultText);
 end;


 
begin...end ©   (2006-04-02 20:50) [1]

> Bruce   (02.04.06 20:35)
> Есть ли утечка памяти в данном коде?

Нет. Но и необходимости использования PChar тоже нет.

Если AText — это string, то я бы сделал примерно так:

var
 ms: TMemoryStream;
begin
 Result := False;
 ms := TMemoryStream.Create;
 try
   ms.Write(AText[1], Length(AText));
   ms.Position := 0;
   if ProcessData(ms) then
   begin
     SetLength(AText, ms.Size);
     ms.Read(AText[1], ms.Size);
     Result := True
   end
 finally
   ms.Free
 end
end


 
Bruce   (2006-04-02 20:56) [2]


> begin...end ©   (02.04.06 20:50) [1]


> Если AText — это string, то я бы сделал примерно так:

Да, AText - это параметр var string, сделаю как вы советуете, просто с опаской отношусь к манипуляциям памятью с типом string :)


 
Джо ©   (2006-04-02 21:10) [3]

> [2] Bruce   (02.04.06 20:56)
> просто с опаской отношусь к манипуляциям памятью с типом
> string :)

Ого, а к конструкциям типа pResultText^ без опаски? ;)


 
Рамиль ©   (2006-04-02 21:11) [4]


> Да, AText - это параметр var string, сделаю как вы советуете,
>  просто с опаской отношусь к манипуляциям памятью с типом
> string :)

смело


 
Bruce   (2006-04-02 22:17) [5]


> Джо ©   (02.04.06 21:10) [3]

а чего там опасаться то ) выделил память, скопировал память )



Страницы: 1 вся ветка

Текущий архив: 2006.04.16;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.044 c
2-1143789588
Mozgan
2006-03-31 11:19
2006.04.16
Клавиатура Windows в Delphi


2-1144006969
Евгений Р.
2006-04-02 23:42
2006.04.16
Использование tDataBase


15-1143440983
укенг
2006-03-27 10:29
2006.04.16
вопрос про КАСКО


15-1143032261
Физик
2006-03-22 15:57
2006.04.16
На етом форуме можна зделать штобы ответы приходили на mail


2-1143816098
GODLoki
2006-03-31 18:41
2006.04.16
HELP PLEASE!