Einzelnen Beitrag anzeigen

Benutzerbild von Helmi
Helmi

Registriert seit: 29. Dez 2003
Ort: Erding, Republik Bayern
3.312 Beiträge
 
Delphi XE2 Professional
 
#6

AW: Problem mit Speicherfreigabe bei dynamischen Array als function-Übergabe

  Alt 28. Okt 2012, 17:10
also ich hab es jetzt so gemacht:

Delphi-Quellcode:
function NetzwerkInfos_auslesen(var Liste: TAdapter_Array; out ErrorCode: Integer): Boolean;
var
  pAdapterList : PIP_ADAPTER_INFO;
  pAdapterAddresses : PIP_ADAPTER_ADDRESSES;
  pAdapterList_store : PIP_ADAPTER_INFO;
  pAdapterAddresses_store : PIP_ADAPTER_ADDRESSES;

begin
  {...}

  //Speicher anfordern
  pAdapterList := AllocMem(LenAdapter_List);
  pAdapterAddresses := AllocMem(LenAdapter_Address);

  //Größe des angeforderten Speichers merken, notwendig für das FreeMem
  //(die normalen Variablen werden nil und dadurch bleibt Speicher übrig)
  pAdapterList_store := pAdapterList;
  pAdapterAddresses_store := pAdapterAddresses;

  try
  {...}
  finally
    //
    FreeMem(pAdapterList_store);
    FreeMem(pAdapterAddresses_store);
  end;
end;
Es sind doch nur 2 "kleine" Lecks
Ja - das stimmt schon! Aber ich ruf die Procedure ggf. über einen Timer auf und dann summieren sich die kleinen Lecks.
"Kleine Lecks machen auch Speichermist"
mfg
Helmi

>> Theorie ist Wissen, dass nicht funktioniert - Praxis ist, wenn alles funktioniert und keiner weiss warum! <<
  Mit Zitat antworten Zitat