Puoi vedere una struttura come una "raccolta di variabili" (int X e int Y nel tuo caso). Di fatto stai dichiarando un nuovo tipo, partendo da tipi già esistenti (interi nel tuo caso). L' asterisco indica che quello è un puntatore. Un puntatore è una variabile che contiene l' indirizzo di memoria iniziale di un'altra variabile/array. Questo è spiegato qui: http://it.wikipedia.org/wiki/Puntatore_(programmazione) e qui: http://www.science.unitn.it/~fiorella/guidac/guidac056.html . Siccome il parametro è un puntatore, io passo l' indirizzo di memoria della struct, così, quando andrò a modificare Frutto in realtà sto modificando la variabile nello spazio puntato da Frutto. Frutto punta a MioFrutto, la tua struttura, che quindi verrà modificata.
Visual studio mi pare definisca NULL con
#define NULL 0
mentre GCC
#define NULL (void*)0
è il valore di ritorno per una cattiva allocazione e anche un'area di memoria nulla. Un puntatore che punta a null, punta al niente
P.S. !!!Ho commesso un (grave) errore!!! devi fare Frutto->X e Frutto->Y, scusa.
Ogni altra spiegazione relativa a questo argomento la troverai classificata sotto "puntatori". Ti consiglio di studiare i puntatori, e di organizzare la logica del gioco in maniera più ottimale, per tenere divisa la parte di input e output, e poi (se avrai ancora problemi) aprire un altro topic.
Ultima modifica effettuata da TheDarkJuster il 27/08/2014 alle 21:32 |