Odczytać index elementu tablicy ze wskaźnika

Odpowiedz Nowy wątek
2006-11-07 22:39

Rejestracja: 14 lat temu

Ostatnio: 11 lat temu

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;

Pozostało 580 znaków

2006-11-07 22:57

Rejestracja: 16 lat temu

Ostatnio: 10 lat temu

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.


<font color="red">Konto porzucone</span>

Dzięki wszystkim forumowiczom za lata wspólnych dyskusji; miłej zabawy w programowanie!
Sławomir 'Szczawik' Włodkowski

Pozostało 580 znaków

2006-11-07 23:53

Rejestracja: 14 lat temu

Ostatnio: 11 lat temu

0

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

Pozostało 580 znaków

Odpowiedz

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