Wskaźnik na tablicę

0

Cześć wszystkim,

mam pytanko, czy poprawne będzie zainicjalizowanie zmiennej w poniższy sposób:

uint16_t * paucTest[2];

czy osobno powinnam stworzyć tablicę:

uint16_t aucTest[2];

i wskaźnik na nią

unit16_t *pucTest = aucTest[0];

?

2

Oba sposoby są błędne (ew. pierwszy dobry, jeśli robisz coś innego niż opisałaś)

uint16_t * a[2];        // tablica 2 wskaźników na uint16_t
uint16_t b[2];          // tablica 2 uint16_t
uint16_t (*c)[2];       // wskaźnik na tablicę 2 uint16_t
uint16_t *d1 = &b[0];   // ustawienie wskaźnika na pierwszy element tablicy
uint16_t *d2 = b;      // ustawienie wskaźnika na pierwszy element tablicy
uint16_t (*e)[2] = &b;  // ustawienie wskaźnika na tablicę
0

Ok, zależy mi na tablicy 2 wskaźników na uint16_t, czyli inicjalizuję:

uint16_t * pa[2];

i teraz jeśli odnoszę się do wartości pierwszej zmiennej pod wskaźnikiem (oczywiście wcześniej zainicjalizowanej), to mogę napisać:

*pa[0]

i odpowiednio drugiej:

*pa[1]

a gdy operuje na wskaźnikach to po prostu:

pa[0], pa[1]

?

1

Tak, tylko naturalnie obie wartości pierw muszą być zainicjalizowane.

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