Einzelnen Beitrag anzeigen

Der_Unwissende

Registriert seit: 13. Dez 2003
Ort: Berlin
1.756 Beiträge
 
#3

Re: Auf welches Array-Element zeigt der Pointer?

  Alt 24. Dez 2005, 11:44
Hi,
warum genau willst du das denn wissen?
Na ja, am einfachsten vergleichst du einfach die einzelnen Elemente (bzw. deren Adresse) mit dem Pointer.

Delphi-Quellcode:
for i := low(a) to high(a) do
  begin
    if (pointer = @a[i]) then
      begin
        pos := i;
        break;
      end;
  end;
Da ein Array immer als ein Speicherbereich alloziert wird, kannst du natürlich auch einfach schauen, wieviel Byte du von der Startadresse weg liegst (klappt dann allerdings nur bei gleich großen Array-Elementen)

Delphi-Quellcode:
startPos := Integer(@a[0]);
pos := (startPos - Integer(p)) div sizeOf(a[0]);
Warum genau sind eigentlich deine Array-Elemente Unterschiedlich groß?

Gruß Der Unwissende
  Mit Zitat antworten Zitat