Jetzt würde mich aber wirklich mal interessieren, was du mit unerklärlichen Fehlern meinst wenn man GetMem und FreeMem benutzt?
Nimm z.B. folgende Definition:
Delphi-Quellcode:
type
MyRec = record
f1 : Byte;
f2 : Word;
f3 : String[80]
end;
Das sind 84 Byte Du arbeitest also mit Getmem(p,84);
Das Dumme ist nur, das ein mögliches Alignment nicht beachtet wurde. Und immer wenn der String 80..75 Zeichen lang wird, dann trittst Du irgend einer anderen Variablen auf die Füße.
Oder Du hast ein altes 16Bit-Programm und es wird in einer 32-Bit Umgebung neu erstellt. Dann ist ein Integer nicht mehr 16 sondern 32 Bit groß. Und zur Ermittlung des Speicherplatzes wird nicht Sizeof verwendet, sondern fest kodierte Werte. Das kann u.U. recht eklig werden.
Gruß
K-H