• Regolamento Macrocategoria DEV
    Prima di aprire un topic nella Macrocategoria DEV, è bene leggerne il suo regolamento. Sei un'azienda o un hosting/provider? Qui sono anche contenute informazioni per collaborare con Sciax2 ed ottenere l'accredito nella nostra community!

Problema risolto [C++] Liste

gedamial

Utente Senior
Autore del topic
9 Giugno 2010
1.937
69
Miglior risposta
0
Salve.

Avevo questo problemino con le liste

Codice:
Perfavore, Entra oppure Registrati per vedere i codici!

Come mai non mi inserisce la "mortadella" in testa? :emoji_relieved:

@TBH
 
Ultima modifica da un moderatore:
Salve.

Avevo questo problemino con le liste

Codice:
Perfavore, Entra oppure Registrati per vedere i codici!

Come mai non mi inserisce la "mortadella" in testa? :emoji_relieved:

@TBH

- - - Aggiornato - - -

Il thread è stato inviato 3 volte a causa di un errore... il forum mi dava Database error... ma nonostante tutto ha riscritto il topic!

ok , comunque posta tutto il codice. Di una lista ti devi salvare sempre la testa della lista (in questo caso sembra essere il primo parametro )

- - - Aggiornato - - -
@gedamial perchè tutti quei puntatori :O

ti riscrivo un momento il codice per farti capire meglio

Codice:
Perfavore, Entra oppure Registrati per vedere i codici!
 
ok , comunque posta tutto il codice. Di una lista ti devi salvare sempre la testa della lista (in questo caso sembra essere il primo parametro )

- - - Aggiornato - - -
@gedamial perchè tutti quei puntatori :O

ti riscrivo un momento il codice per farti capire meglio

Codice:
Perfavore, Entra oppure Registrati per vedere i codici!

Qual è la differenza tra ** e *& ? (quando lo indico come parametro della funzione)

E poi perchè mettendo ** devo mettere poi sotto *il anzicche il
 
Qual è la differenza tra ** e *& ?

E poi perchè mettendo ** devo mettere poi sotto *il anzicche il

la prima domanda non ho capito che vuoi intendere. (il primo è un puntatore di puntatore , la seconda istruzione ottiene il riferimento e la deferenzi quindi non ha senso)
perché deve deferenziarlo e portarlo a Spesa *
 
la prima domanda non ho capito che vuoi intendere. (il primo è un puntatore di puntatore , la seconda istruzione ottiene il riferimento e la deferenzi quindi non ha senso)
perché deve deferenziarlo e portarlo a Spesa *

Ma io ho visto il prof. Camuso usare *& al posto di ** e andava benissimo... da notare che l'inserimento in testa come l'ho scritto io funzionava! Poi ho aggiunto il metodo dell'ins in coda e poi non è andato più quello in testa...
 
Ma io ho visto il prof. Camuso usare *& al posto di ** e andava benissimo... da notare che l'inserimento in testa come l'ho scritto io funzionava! Poi ho aggiunto il metodo dell'ins in coda e poi non è andato più quello in testa...

ah no no vero hai ragione un attimo di defaince , comunque è equivalente.
comunque non c'e bisogno che hai riferimento di tutti i nodi , l'importante è la testa. Il resto dei metodi sono scritti bene
 
ah no no vero hai ragione un attimo di defaince , comunque è equivalente.
comunque non c'e bisogno che hai riferimento di tutti i nodi , l'importante è la testa. Il resto dei metodi sono scritti bene

qual è la differenza tra

void funz(int ** a)
{}

e

void funz(int *& a)

?
 
@TBH ma come mai quando creiamo i nuovi nodi (p4 e p5) dobbiamo dichiararli così:

Spesa *p4 = new Spesa;

e non semplicemente

Spesa *p4;

?
 
@TBH ma come mai quando creiamo i nuovi nodi (p4 e p5) dobbiamo dichiararli così:

Spesa *p4 = new Spesa;

e non semplicemente

Spesa *p4;

?

in p4 hai il riferimento(punta ) dell'oggetto spesa , e tramite ->puoi accedere ai membri (new serve per allocare la memoria :soso:emoji_slight_smile: . Nel secondo caso è un semplice puntatore a Spesa
 
in p4 hai il riferimento(punta ) dell'oggetto spesa , e tramite ->puoi accedere ai membri (new serve per allocare la memoria :soso:emoji_slight_smile: . Nel secondo caso è un semplice puntatore a Spesa

Nel mio caso perchè se non uso il new Spesa il programma crasha?
 
Ok ma perchè la funzione ha bisogno di un oggetto? Perché non un puntatore alla struct?

tu puoi indicare una mela se non esiste ? stesso concetto è per il puntatore. (il tuo indice è il puntatore , la mela l'oggetto)
 
tu puoi indicare una mela se non esiste ? stesso concetto è per il puntatore. (il tuo indice è il puntatore , la mela l'oggetto)

Si ma allora perchè con il puntatore-a-struct IL funziona quando lo passo alle funzioni?

questo screen (
Perfavore, Entra oppure Registrati per vedere i Link!
) ti mostra alcune variabili-puntatore-a-struct che però io riesco a passare come parametro alle altre funzioni... perchè con i due nodi devo renderli oggetti?
 
asp questo che hai detto non ha molto senso , ma riprendiamo questa funzione

Codice:
Perfavore, Entra oppure Registrati per vedere i codici!

presumiamo i seguenti casi
Codice:
Perfavore, Entra oppure Registrati per vedere i codici!

Secondo caso
Codice:
Perfavore, Entra oppure Registrati per vedere i codici!

quello screen non dimostra nulla di strano :emoji_confused:

Se dichiarassi

Spesa* uno;
Spesa* due = new Spesa;

Oltre al fatto che DUE è un oggetto e UNO è un puntatore... che differenza c'è a livello pratico? Cosa posso fare con uno e non con un altro?
 
Se dichiarassi

Spesa* uno;
Spesa* due = new Spesa;

Oltre al fatto che DUE è un oggetto e UNO è un puntatore... che differenza c'è a livello pratico? Cosa posso fare con uno e non con un altro?

oh dio santo non so come spiegartelo ho provato con tutti gli esempi :|
uno è un puntatore che non punta a niente.
invece due sempre un puntatore , ma questa volta punta a oggetto.

Sia uno che due sono puntatori. Con uno non puoi fare proprio niente se non lo fai puntare a qualcosa.
tipo

Codice:
Perfavore, Entra oppure Registrati per vedere i codici!
dimmi uno lo puoi utilizzare ?