View Full Version : [c] liste
ciao, se in una funzione viene passata per valore una generica lista t cosi fatta:
t -> CELLA1 -> CELLA2 -> CELLA3 -> NULL
e nella funzione viene fatto in modo che la cella 2 punti a NULL, al ritorno nel main, ammesso che la fuznione non restituisca niente di niente ed è passata non per indirizzo, ho questa situazione:
t -> CELLA1 -> CELLA2 -> NULL
CELLA3 -> NULL
o questa?
t -> CELLA1 -> CELLA2 -> CELLA3 -> NULL
Grazie della'aiuto
DanieleC88
06-01-2009, 09:56
t → CELLA1 → CELLA2 → NULL... e CELLA3 e seguenti sono persi per sempre. :P
Ovviamente nel dirti questo sto facendo delle supposizioni su come sia implementata tale lista, ma dovresti ottenere questo risultato. :)
La prima opzione. Chiaramente perdendo il riferimento a cella3 non potrai più accedervi in nessun modo.
La prima opzione. Chiaramente perdendo il riferimento a cella3 non potrai più accedervi in nessun modo.
ok grazie infatti l'ho appena verificato con una prova pratica
ciao, se in una funzione viene passata per valore una generica lista t cosi fatta:
t -> CELLA1 -> CELLA2 -> CELLA3 -> NULL
e nella funzione viene fatto in modo che la cella 2 punti a NULL, al ritorno nel main, ammesso che la fuznione non restituisca niente di niente ed è passata non per indirizzo, ho questa situazione:
t -> CELLA1 -> CELLA2 -> NULL
CELLA3 -> NULL
o questa?
t -> CELLA1 -> CELLA2 -> CELLA3 -> NULL
Grazie della'aiuto
"passare per valore una lista" è ambiguo, dovresti fare un esempio di codice. probabilmente intendi passare per valore il puntatore alla testa della lista; in ogni caso la situazione finale sarà la prima che dici, ed è una brutta situazione perché CELLA3 non è più accessibile e contribuisce al memory leak.
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.