Quote:
Originariamente inviato da Andrea16v
Codice:
if ((pnodo = (PNODO) malloc (sizeof (NODO))) == NULL)
return 0;
pnodo->result = result;
pnodo->sessioni[0][0] = sessione;
pnodo->sessioni[0][1] = 1;
|
Continuo a non vedere la allocazione di una area per questi benedetti int. A costo di essere petulante, ripeto che pnodo->sessioni č solo un puntatore e gli va assegnato qualcosa prima di poterlo dereferenziare (accedere al contenuto puntato).
Un esempio banale:
Codice:
int (*sessioni)[2];
int arr[2];
sessioni = &arr;
In questo caso assegno l'indirizzo di un altro array.
Ma posso pure allocare dinamicamente la memoria per i due int:
Codice:
int (*sessioni)[2];
sessioni = (int(*)[2]) malloc (2 * sizeof (int));
E se volessi allocare 10 righe:
Codice:
sessioni = (int(*)[2]) malloc (2 * 10 * sizeof (int));
sessioni[0][0] = ....
sessioni[0][1] = ....
....
sessioni[9][0] = ....
sessioni[9][1] = ....