Delphi-Quellcode:
function CntArrDimensions(Arr: Pointer): String;
begin
if Arr = nil then Result := 'leer'
else Result := '0..' + IntToStr((PPInteger(Arr)^ - 4)^ - 1));
end;
für mehr Ebenen
mußt du über die
RTTI gehn, denn anders ist keine sichere Auswertung möglich, da du nicht weißt was im Array für Daten enthalten und ob das überhaupt Arrays-Zeiger sind.
Mit viel Spaß könnte ich über ein einfaches Array of Integer deinen Code in eine Endlosschleife steuern
z.B.:
Delphi-Quellcode:
Var Arr: Array of Integer;
SetLength(Arr, 1);
Arr[0] := Integer(Arr);