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++
		}
vedete il cout<<hex<<&nuovoPattern<<"\n"; ?

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