Wskznik(i) do tablicy

0

Moze ktos wytlumaczyc jak to jest z tymi wskaznikami do tablicy jedno- i dwuwymiarowj? Jak to wszystko interpretowac ?
Z gory dzieki.

0

Wskaźnik na tablicę jednowymiarową to po prostu wskaźnik na pierwszy jej element (można używać wraz z operatorem [] by 'przejrzeć' całą tablicę). Z kolei tablica dwuwymiarowa to tablica wskaźników na tablice, więc wskaźnik na nią to wskaźnik na pierwszy element 'nadrzędnej' tablicy.

0
Ghostek napisał(a)

Wskaźnik na tablicę jednowymiarową to po prostu wskaźnik na pierwszy jej element (można używać wraz z operatorem [] by 'przejrzeć' całą tablicę). Z kolei tablica dwuwymiarowa to tablica wskaźników na tablice, więc wskaźnik na nią to wskaźnik na pierwszy element 'nadrzędnej' tablicy.

a propos tablic wielowymiarowych (2d w góre) statycznych, wczoraj kombinowałem (dla Coldpeera) podobna sprawe i co sie okazało: tablica statyczna jest (przynajmniej dla gcc) zwartym elementem, pojedynczym ciągiem bajtów, nie (tablicą wskażnikow)^(n-1) do jednowymiarowych tablic.

przykład: http://carramba.ath.cx/flabra/temp/test2.c

traktowanie powyzszej tablicy jak w: http://carramba.ath.cx/flabra/temp/test.c czyli np:

void wypelnij3(int x,int y,int** t){
  int j=0;
  while(j<y){
    int i=0;
    while(i<x){
      printf("[%d:%d]=%d\n",i,j,t[j][i]=j*x+i+21);
      i++;
    }
    j++;
  }
}

spowoduje tylko błąd naruszenia ochrony pamięci

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