Вниз
Скачать: CL | DM;

Как правильно очищать буффер?   Найти похожие ветки 

 
Алик   (2007-09-27 23:28) [0]

Добрый вечер

В проге я выделяю память под буффер. В конце память надо освободить, как лучше это сделать?

var  Buffer : PChar;
begin
  Buffer := PChar(AllocMem(10));
...
Так
  Buffer := PChar(AllocMem(0));
или
   FreeMem(Buffer);
или
   Finalize(Buffer);
или
   Dispose(Buffer);
end;


 
Anatoly Podgoretsky ©   (2007-09-27 23:38) [1]

Description

AllocMem allocates a block of the given size on the heap. Each byte in the allocated buffer is set to zero. To dispose the buffer, use FreeMem.


 
Johnmen ©   (2007-09-27 23:40) [2]

Нажать F1 на AllocMem и почитать, наверное, очень трудно?


 
Алик   (2007-09-27 23:47) [3]

FreeMem работает нормально когда буффер создан, но если буффер еще не создан, а в проге вызывавется Freemem, то идет сбой. Например:

try
 if <условие x> = True then begin
                                      Buffer := PChar(AllocMem(10));
                                       ....
                                      end
 else
    Exit;

finally
 FreeMem(Buffer);
end;


 
Anatoly Podgoretsky ©   (2007-09-27 23:49) [4]

> Алик  (27.09.2007 23:47:03)  [3]

А нафига ты пытаешься освобождать невыделеную память?


 
{RASkov} ©   (2007-09-27 23:51) [5]

> [3] Алик   (27.09.07 23:47)

if not <условие x> then Exit else
try
 Buffer := PChar(AllocMem(10));
 ....
finally
 FreeMem(Buffer);
end;


 
Алик   (2007-09-27 23:53) [6]

А как узнать выделена память под буфер или нет?
SizeOf(Buffer) ?


 
{RASkov} ©   (2007-09-28 00:00) [7]

> [6] Алик   (27.09.07 23:53)
> SizeOf(Buffer) ?

Всегда будет одно и то же...

> А как узнать выделена память под буфер или нет?

Никак....
или другими словами если <условие x> и выполнилась строка <Buffer := PChar(AllocMem(10));> то выделено...


 
jack128_   (2007-09-28 00:11) [8]


> А как узнать выделена память под буфер или нет?

P := nil;
try
 if <условие>  then
   P := AllocMem(Random(10));
 ...
finally
 if P <> nil then
  FreeMem(P);
end;



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

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.014 c
15-1190464568
me
2007-09-22 16:36
2007.10.21
Сайты, форумы для изучающих английский


15-1190136505
iop
2007-09-18 21:28
2007.10.21
А почему мы одних любим...


2-1190723990
cvg
2007-09-25 16:39
2007.10.21
Как обратиться к чарту по номеру?


2-1191237333
matt
2007-10-01 15:15
2007.10.21
Ini-файлы


2-1190619662
F@T@L_Err0r
2007-09-24 11:41
2007.10.21
TrackBar




   Наверх