View Single Post
Old 03-09-2007, 20:48   #12
andbin
Senior Member
 
L'Avatar di andbin
 
Iscritto dal: Nov 2005
Cittā: TO
Messaggi: 5206
Quote:
Originariamente inviato da Andrea16v Guarda i messaggi
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] = ....
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%)
andbin č offline   Rispondi citando il messaggio o parte di esso