Odczytać index elementu tablicy ze wskaźnika

0

Witam
Czy jest możliwość odczytać indexu elementu tablicy ze wskaźnika, który na ten element wskazuje ?
tzn:

var
  xxx : array[1..8] of integer;
  tmp : array[1..8] of ^Integer;

begin
  tmp[1] := @xxx[6];
  showmessage('indexem elementu tablicy, na który wskazuje wskaźnik jest '); //6 
end;
0
var
  xxx : array[1..8] of integer;
  tmp : array[1..8] of ^Integer;
begin
tmp[1] := @xxx[6];
ShowMessage('indexem elementu tablicy, na który wskazuje wskaźnik jest'+
    IntToStr(low(xxx)+(integer(tmp[1])-integer(@xxx)) div sizeof(integer))
); //6
end;

Jeśli od znanego wskaźnika odejmiesz początkowy adres tablicy, otrzymasz ilość bajtów od początku tablicy. Jeśli to podzielisz przez rozmiar elementów tablicy, otrzymasz ilość elementów od początku tablicy. Jeśli dodasz do tego indeks pierwszego elementy, otrzymasz numer wskazywanego elementu.

0

Świetnie !!!
Dzięki Ci, sam nawet nie sądziłem, że jest to możliwe...

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0