Istruzione che non capisco
Ciao a tutti, non riesco a capire cosa voglia dire questa
istruzione:
*topPtr = (*topPtr)->nextPtr;
Studiando il C avevo visto cose tipo:
cPtr->data
oppure (*cPtr).data
ma non riesco a capire cosa significhi questa istruzione
che le combina.
Grazie in anticipo a chiunque provi a spiegarmelo!
istruzione:
*topPtr = (*topPtr)->nextPtr;
Studiando il C avevo visto cose tipo:
cPtr->data
oppure (*cPtr).data
ma non riesco a capire cosa significhi questa istruzione
che le combina.
Grazie in anticipo a chiunque provi a spiegarmelo!
Risposte
topPtr è un puntatore a puntatore, il valore a cui punta è cioè un puntatore lui stesso. Per cui (*topPtr) ottiene il valore al puntatore a cui punta e ->nextPtr serve per ottenere il valore del campo nextPtr alla struttura a cui (*topPtr) punta. Spero di averti chiarito un po' il significato dell'istruzione. Molto probabilmente stai lavorando con una lista e hai bisogno di modificare il puntatore a tale lista in modo che punti al nodo successivo a quello attuale. Un modo forse più chiaro di scriverla sarebbe stato:
Node *node = *topPtr; // ottiene il puntatore al nodo attuale assumendo che il tipo si chiami Node node = node->nextPtr; // aggiorna il puntatore al nodo
grazie della spiegazione, è decisamente più chiaro!