Assegni una nuova area di memoria (un indirizzo) e subito cambi questa area a quella di cur (al suo indirizzo per la precisione), non copii il contenuto di cur i aus, ma il suo indirizzo.Originariamente inviato da SpecialOne1992
perché non hanno senso quelle due righe di codice?
Gli elementi dispari tu intendevi dispari per posizione (almeno per quanto hai scritto), per cui saranno uno pari e uno dispari in successione (dipende ovviamente se intendi partire da 1 o da 0) quindi la chiamata:poi scusami non ho capito come vorresti implementare il flag
Farà avverare il primo if e chiamerà se stessa in ricorsione comecodice:disp_list(list, 1);
flag cambia da 1 a 0 per effetto del ! e nella seconda chiamata l'if risulterà falso e si richiamerà la funzione dinuovo concodice:cur->next = disp_list(cur->next, !flag);
saltando un elemento ma cambiando flag da 0 a 1 (sarebbe un qualsiasi valore non 0 in realtà, ma puoi considerarlo 1) e così fino alla fine, ovviamente con i dovuti controlli...codice:disp_list(cur->next, !flag);
Io vedo più pulita l'ultima possibilità, quella semplificata, poi vedi tu...

Rispondi quotando