PDA

View Full Version : [C] Liste di liste


agus83
14-11-2007, 09:54
Ciao a tutti,
ecco un'altro quesito sulla programmazione in C:

Ho due liste concatenate,cioč

typedef struct stream
{
int variabile;
char *stringa;
} stream;

typedef struct session
{
int codice;
char *nome;
struct stream *stream1;
struct session *next;
}session;

La lista principale č un insieme di "session"; ogunua di queste struttura punta anche ad una struttura di tipo "stream".
Il mio problema č che non riesco ad accedere al valore di stream,cioč

int xxx;
xxx = session.stream1->variabile;

ERRORE-> "request for member 'stream1' in something not a structure or union"

HELP ME!!!!

yorkeiser
14-11-2007, 15:05
Non basta definire le struct, devi anche istanziarle: stai provando ad inizializzare una variabile intera servendoti di struct dichiarate ma non inizializzate (per istanziare una variabile di tipo struct, fai come per le altre variabili, ad esempio nel tuo caso

session my_session;
my_session.codice = ...

Ti posto un esempio di codice (prolisso) per accedere a quel membro:

session* se;
stream* st;
st=(stream*)malloc(sizeof(stream));
se=(session*)malloc(sizeof(session));
st->variabile = 5;
se->stream1 = st;
printf("%i",se->stream1->variabile);