Tablica struktur

0

Witam.

mystruct * ptr = new mystruct;
ptr->numer = 10;

mystruct *ptr = new mystruct[10];
ptr[0]->numer = 10; // blad 
ptr[0].numer = 10; // dziala
 

Witam.

Czy byłby ktoś skłonny wyjaśnić mi dlaczego przy tablicy struktur, moge uzyć tylko operatora ".", aby
zapisac wartosc w zmiennej numer, nalezacej do struktury mystruct ?

4

Ponieważ dla typów wbudowanych a[b] jest równoznaczne z *(a+b). Dla ptr będącego wskaźnikiem na mystruct, po użyciu operatora wyłuskania masz lvalue mystruct, do którego operator-> ma się nijak.

Przy okazji: korzystanie z nagiego new i delete to antyidiom w C++. Masz kontenery, masz smart pointery - korzystaj z nich.

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