Programowanie w języku Delphi

ZeroMemory

  • 2010-10-31 18:27
  • 1 komentarz
  • 708 odsłon
  • Oceń ten tekst jako pierwszy
// C
void ZeroMemory(
  PVOID Destination,
  SIZE_T Length
);

//Delphi
procedure ZeroMemory(Destination:Pointer; Length:Cardinal);


Procedura ZeroMemory wypełnia zerami podany obszar pamięci.

Parametry:
Destination
Wskaźnik do początku zerowanego obszaru pamięci.

Length
Długość obszaru do wyzerowania (w bajtach).

Wykorzystanie:
var
  Buf :array [0..9] of Byte;
 
ZeroMemory(@Buf, SizeOf(Buf));


ZeroMemory jest funkcją systemową. Jej odpowiednikiem w bibliotece pascala jest FillChar, przy czym może ona inicjować pamięć wartościami 0..255.
FillChar(Buf, SizeOf(Buf), 0);

W niektórych kompilatorach C/C++ może ona zostać podczas optymalizacji pominięta i w takich wypadkach należy użyć SecureZeroMemory.
Zobacz też:


1 komentarz

jachings 2009-05-11 14:31

Nie wiem dlaczego ale ta funkcja przy zerowaniu tabeli strasznie "zjada" pamięć. Używając jej wielokrotnie
np
Zeromemory(@tablica,sizeof(tablica));
FastMM pokazuje za każdym razem "wyciek pamięci" (tzw memory leak)
Przez takie wycieki przy długiej pracy pojawiał się komunikat (Out of memory) lub (za mało pamięci virtualnej)

Pozdrawiam
jachings