Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12

Discussione: [C++] info puntatori

  1. #1

    [C++] info puntatori

    Qualkuno mi saprebbe dire la sintassi ke mi permette di conservare in una variabile il campo puntatore di un nodo???

    Io provo a fare cosi, ma mi da errore:
    x="nome_viariabile".next; // dove next è il campo puntatore.

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Non ho capito la domanda ...

    P.S. Per favore, scrivi senza abbreviazioni da SMS ... l'italiano e' una bella lingua ... utilizziamola ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Allora. Praticamente vorrei memorizzare in una variabile il campo puntatore (quello che punta alla variabile successiva)

    codice:
    #include <iostream>   
    using namespace std;
    int *p,*q,*r;
    int *x;
    int main()
    { 
        struct lista 
        { 
            string nome; 
            string cognome; 
            int eta; 
            struct lista *punt;
        };
    
        lista p; 
        cout << "Inserisci il nome = "; 
        cin >> p.nome; 
        cout << "Inserisci il cognome = "; 
        cin >> p.cognome; 
        cout << "Inserisci l'eta = "; 
        cin >> p.eta;
        
        lista q;
        p.punt =&q;
        cout << "Inserisci il nome = "; 
        cin >> q.nome; 
        cout << "Inserisci il cognome = "; 
        cin >> q.cognome; 
        cout << "Inserisci l'eta = "; 
        cin >> q.eta;
        
        lista r;                 
        x=r.punt;  //voglio conservare nella variabile "x" il campo puntatore di "r". qui mi da errore
    
        system("pause"); 
    }

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Non va bene la dichiarazione di r e x che hai scritto all'inizio ...

    r deve essere un elemento di tipo lista e x deve essere un puntatore a lista

    codice:
        lista r;                 
        struct lista *x;
        x=r.punt;
    Studia bene il capitolo dei puntatori in un qualsiasi libro di C ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5
    sto cercando di fare un programma che mi fa caricare k nodi.
    codice:
    #include <iostream>   
    using namespace std;
    int *p,*q,*r;
    int x,i,k,y;
    int main()
    { 
        i=0;
        y=2;
        struct lista 
        { 
            string nome; 
            string cognome; 
            int eta; 
            struct lista *punt;
        };
        cout << "Inserisci il numero di nodi da creare (min 3) = ";
        cin >>k;
        lista p; 
        cout << "Inserisci il nome = "; 
        cin >> p.nome; 
        cout << "Inserisci il cognome = "; 
        cin >> p.cognome; 
        cout << "Inserisci l'eta = "; 
        cin >> p.eta;
        
        lista q;
        p.punt =&q;
        cout << "Inserisci il nome = "; 
        cin >> q.nome; 
        cout << "Inserisci il cognome = "; 
        cin >> q.cognome; 
        cout << "Inserisci l'eta = "; 
        cin >> q.eta;
        
        do
        {
        lista r;
        struct lista *x;
        if (i==0)
                 {
                  q.punt=&r;   
                 }
                 else
                 {
                  x.punt=&r;   //QUI MI DA ERRORE
                 }
        x=r.punt;         
        i=1;
        y++;
        cout << "Inserisci il nome = "; 
        cin >> r.nome; 
        cout << "Inserisci il cognome = "; 
        cin >> r.cognome; 
        cout << "Inserisci l'eta = "; 
        cin >> r.eta;         
        }
        while(y<k);
    
        system("pause"); 
    }

  6. #6
    Scusate ho risolto:
    la sintassi corretta era:
    x=&r;

    :quote:

    Cmq ho provato a far stampare i nodi collegati, e mi sono accorto che ce qualkosa che non va. Mi sapreste aiutare??

  7. #7
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Ancora non ho capito nulla del tuo problema e di come lo hai risolto ...

    In ogni caso, il problema della "stampa dei nodi" lo dovresti porre aprendo un nuovo thread, spiegandolo bene e mostrando il codice.
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  8. #8
    Questo è il programma scritto da me. Prima ho parlato delle stampa dei nodi, per controllare se ho collegato i nodi che creo. Tu sapresti dirmi se in questo modo ho collegato i nodi che creo?? Vorrei una conferma.
    codice:
    #include <iostream>   
    using namespace std;
    int *p,*q,*r;
    int x,i,k,y;
    int main()
    { 
        i=0;
        y=1;
        struct lista 
        { 
            string nome; 
            string cognome; 
            int eta; 
            struct lista *punt;
        };
        cout << "Inserisci il numero di nodi da creare (min 3) = ";
        cin >>k;
        lista p; 
        cout <<y<< ") Inserisci il nome = "; 
        cin >> p.nome; 
        cout <<y<< ") Inserisci il cognome = "; 
        cin >> p.cognome; 
        cout <<y<< ") Inserisci l'eta = "; 
        cin >> p.eta;
        
        lista q;
        p.punt =&q;
        y++;
        cout <<y<< ") Inserisci il nome = "; 
        cin >> q.nome; 
        cout <<y<< ") Inserisci il cognome = "; 
        cin >> q.cognome; 
        cout <<y<< ") Inserisci l'eta = "; 
        cin >> q.eta;
        
        do
        {
        lista r;
        struct lista *x;
        if (i==0)
                 {
                  q.punt=&r;   
                 }
                 else
                 {
                  x=&r;   
                 }
        x=r.punt;         
        i=1;
        y++;
        cout <<y<< ") Inserisci il nome = "; 
        cin >> r.nome; 
        cout <<y<< ") Inserisci il cognome = "; 
        cin >> r.cognome; 
        cout <<y<< ") Inserisci l'eta = "; 
        cin >> r.eta;         
        }
        while(y+1<k);
    
        system("pause"); 
    }

  9. #9
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    No ... non lo fai ... quel codice ha molti "errori" logici che non vale la pena correggerlo ...

    Per gestire correttamente le liste collegate, devi studiare la teoria, come ti avevo detto in questa discussione

    http://forum.html.it/forum/showthrea...readid=1287815

    a cui non hai risposto.

    Se non affronti la parte teorica, non capirai mai come scrivere un codice corretto ...

    Un punto fondamentale e' l' allocazione dinamica dei nodi, che manca nel tuo codice, ed e' necessaria per una corretta gestione di n-nodi collegati.

    Se non hai ben chiaro anche l'utilizzo dei puntatori, ti consiglio di rivedere questi argomenti ...

    Quindi ...

    puntatori
    allocazione dinamica della memoria
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  10. #10
    ma i primi due nodi sono collegati?

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.