vedete il cout<<hex<<&nuovoPattern<<"\n"; ?codice:if (j==PatternSize && modello[j-1]!='2') { Pattern nuovoPattern= init(); nuovoPattern.modello=modello; nuovoPattern.frequenza++; //se non ci sono altri elementi nella lista, allora questo diventa il primo elemento nella lista if (elem==0) { lista=&nuovoPattern; prec=lista; } else { //altrimento lo accodo agli altri cout<<hex<<&nuovoPattern<<"\n"; prec->next=&nuovoPattern; //nuovoPattern.prev=prec; prec=&nuovoPattern; } elem++ }
bene, mi aspetterei che ad ogni iterazione, mi visualizzasse un indirizzo diverso, visto che nuovoPattern viene generato ogni volta, invece mi da sempre lo stesso indirizzo...l'intendo è di fare una lista, infatti la struct contiene
char *modello
int frequenza
Pattern *next
Pattern *prev
next contiene l'indirizzo del successivo, prev l'indirizzo del precedente..
prec non è altro che l'indirizzo del precedente e vorrei mettere nuovoPattern nel puntatore next dell'ultimo elemento della lista ad ogni iterazione.
perché mi da un indirizzo uguale?
0xbff6211c
0xbff6211c
0xbff6211c
0xbff6211c
0xbff6211c
0xbff6211c
e altre decine di righe così...
vi ringrazio

Rispondi quotando