Hi,
wenn du einen typisierten Zeiger
p hast, dann liefert dir
SizeOf(p) die Größe des Zeigers (4 Byte) und
SizeOf(p^) die Größe des Speicherbereichs, auf den der Zeiger verweist.
Delphi-Quellcode:
type
PStructure = ^TStructure;
TStructure = record
i, j, k : Integer;
end;
var
p : PStructure;
size : Integer;
begin
p := nil;
size := SizeOf(p); // size = 4
size := SizeOf(p^); // size = 12
end;
Es spielt dabei keine Rolle, ob der Zeiger initialisiert wurde oder nicht. Der Compiler kennt aufgrund der Typvereinbarungen die Größe der Speicherblöcke und setzt die entsprechenden Werte ein.
Gruß Hawkeye