Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Struktury, wskazniki, tablice dynamiczne, podstawy

Ostatnio zmodyfikowano 2017-11-17 23:01
Autor Wiadomość
_EnrdYou
Temat założony przez niniejszego użytkownika
Struktury, wskazniki, tablice dynamiczne, podstawy
» 2017-11-17 21:11:52
Witam, mógłby mi ktoś wytłumaczyć różnice pomiędzy:

C/C++
struktura ** tab = new struktura *[ N ];
tab[ a ] = new Structure;
tab[ a ]->i = < jakas wartosc >;

a

C/C++
struktura * tab = new struktura[ N ];
tab[ a ].i = < jakas wartosc >

Jakoś nie mogę tego pojąć...
P-166942
pekfos
» 2017-11-17 21:27:13
Pierwsze to tablica wskaźników na struktury, drugie to tablica struktur.
P-166944
_EnrdYou
Temat założony przez niniejszego użytkownika
» 2017-11-17 22:02:11
Okej, ale jakie są praktyczne różnice?
Jakoś nie umiem sobie wyobrazić jak to wygląda ;/
Po co stosuje się ten pierwszy zapis?

W przypadku tablic dynamicznych, pierwszy przypadek utworzyłby tablice 2D(tab[][]), a drugi 1D(tab[]). Natomiast nie rozumiem jak to wygląd w przypadku struktur, bo przecież nie stosujemy tab[][], tylko tab[]->.
Nie rozumiem po co stosuje się wskaźnik na wskaźnik, jeżeli i tak korzysta się tylko z jednej struktury.

W sensie, zawsze myślałem że drugi wymiar tworzy się dla takich celów:

0 - 5,4,2
1 - 2,5,1
2 - 2,1
3 - 523,132,412


W przypadku struktur nie widzę różnicy:

zapis pierwszy:
0 - struktura1
1 - struktura2
2 - struktura3
3 - struktura4

zapis drugi:

struktura1
struktura2
struktura3
struktura4

Trochę zamieszałem, ale generalnie chodzi mi o sens deklaracji wskaźnika na wskaźnik w przypadku gdy i tak tylko działamy na jednej strukturze.

zapis pierwszy miałby sens gdyby:
0 - struktura1,struktura2
1 - struktura3,struktura4
2 - struktura5,struktura6,struktura7
3 - struktura8

Z góry przepraszam za chaotyczność
P-166946
pekfos
» 2017-11-17 23:01:55
Natomiast nie rozumiem jak to wygląd w przypadku struktur, bo przecież nie stosujemy tab[][], tylko tab[]->.
tab[i]->x jest równoznaczne z tab[i][0].x w przypadku zwykłych wskaźników.

Trochę zamieszałem, ale generalnie chodzi mi o sens deklaracji wskaźnika na wskaźnik w przypadku gdy i tak tylko działamy na jednej strukturze.
Użycie wskaźnika zamiast obiektu ma sens, gdy typ jest niekompletny, lub w ogóle nieznany z góry (w programowaniu obiektowym). Ma to też sens, jeśli chcesz by niekoniecznie wszystkie te wskaźniki na coś wskazywały.
P-166948
« 1 »
  Strona 1 z 1