Länge 0 klingt eher danach, als wenn es hier ein FreeMem sein soll.
Bei ReallocMem wird es als VAR-Parameter reingegeben, während ReallocMemory den neuen Wert als Result zurück gibt.
Siehe auch
GetMem und
GetMemory.
Ich würde bei Länge 0 es als
Delphi-Quellcode:
FreeMem(FBuffer);
FBuffer := nil;
vermuten, ähnlich eimem FreeAndNil.
Warum hier FreeMem falsch sein soll, hab ich in dem Kommentar nicht verstanden.
Wobei ich auch lieber TBytes bzw. TArray<Byte> und deren automatische Speicherverwaltung verwende, anstatt mit GetMem und Co. rumzuhantieren.
So spare ich mir explizite Ressourcenschutzblöche (Try-Finally) und es kann auch nicht die Freigabe vergessen werden, da sie automatisch passiert. (die bis 16 Byte mehr für das dynamische Array fallen meistens nicht auf)
Ein Therapeut entspricht 1024 Gigapeut.