Questa funzione dovrebbe creare una lista:
Su questo codice avrei due domande:codice://... struct elem { int inf; elem* pun; } typedef elem* lista; lista crealista(int n) { lista p0=0: elem* p; for (int i+1; i<=n, i++) { p=new elem; cin >> p->inf; p-> pun=p0; p0=p; } return p0; }
1. Il comando typedef si riferisce allo struct elem o al suo membro elem* pun?(Io penso alla struttura)
2. Seguendo l'esecuzione del programma non capisco come ogni volta il ciclo for crei una nuova struttura al quale si fa riferimento con il puntatore della struttura precedente. A mio avviso ogni volta che si chiama l`istruzione p0=p si cancella il vecchio contenuto di p0 e si salva la nuova struttura.
Secondo il mio ragionamente succederebbe questo(con n=2):
n=1
p0=0
p=elem{inf=? e pun=p0}
p0=p quindi p0=elem
n=2
p0=elem
p=elem2{inf=? e pun=p0}
p0=elem2
Quindi la struttura elem(la prima) andrebbe persa...