Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    [C] Passare per riferimento un nodo di una lista.

    Buonasera, problema banale (forse per voi ma per me no...): avendo la necessità di far modificare il valore di alcuni campi di un nodo di una lista, come li passo alla funzione? Vi spiego... Ad esempio: ho una lista... passo la lista ad una funzione che cerca in base ad una chiave e appena trova l'elemento sostituisce uno dei campi. Come procedo? Pensavo di passare per riferimento la lista (struct **head), copiare il valore di **head in un puntatore temporaneo, scorrere la lista fino a trovare il valore, modificarlo e poi riassegnare ad **head il valore che era stato memorizzato nel puntatore temporaneo... Ma, chiaramente, non va... Chiedo il vostro aiuto, grazie in anticipo!

  2. #2
    Utente di HTML.it L'avatar di torn24
    Registrato dal
    Aug 2008
    Messaggi
    551
    Ciao , è probabile che sbagli qualcosa nel codice . se il tuo scopo è solo di cambiare valori di alcuni campi , ti basta passare la lista con un semplice puntatore .
    Utilizzare un doppio puntatore per passare una lista , serve quando vuoi fare puntare ad un altro nodo , il puntatore della funzione chiamante , ma potresti ottenere lo stesso risultato restituendo dalla funzione un puntatore .
    Tecnologia

  3. #3
    Se devi modificare un valore interno alla lista e non la lista stessa,non c'è bisogno di usare il doppio puntatore ma basta il puntatore singolo.
    Diciamo che in una lista si una il ** solo quando c'è la necessità di modificare l'elemento puntato da head.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.