Visualizzazione dei risultati da 1 a 10 su 10

Discussione: [C++] Info puntatori

  1. #1

    [C++] Info puntatori

    Ciao.
    Ho un problema, io vorrei memorizzare in un puntatore qualsiasi, l'indirizzo di un nodo qualsiasi. So che è possibile. Ma non ci riesco.
    Io scrivo così:
    codice:
    #include <iostream>   
    using namespace std;
    int *x,k;
    int main()
    { 
        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;
        *x=q;  //qui mi da errore
        .
        .
        .
    
        system("pause"); 
    }
    MI SAPETE AIUTARE?

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

    Re: [C++] Info puntatori

    Originariamente inviato da Salvatore_91
    MI SAPETE AIUTARE?
    Ma tu, sai spiegare qual e' il tuo problema?

    Se non lo sai fare, non si puo' darti nessun aiuto ...

    Nella riga in cui hai l'errore

    *x=q; //qui mi da errore

    stai tentando di assegnare "una struttura lista" ad un "puntatore ad intero" ... cosa c'entra?

    Se vuoi usare un "puntatore ad un elemento lista" a destra devi avere un "puntatore ad un elemento lista" come

    &q

    e a sinistra devi avere "una variabile di tipo puntatore ad un elemento lista" ovvero una

    lista *x;

    e quindi potrai scrivere

    x=&q;

    Come ti ho detto nel thread simile che avevi aperto in precedenza, se non studi benei puntatori e quel link che ti avevo proposto, mi dispiace per te, ma non capirai mai nulla di questo argomento ... Un suggerimento da un forum non basta ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    E se voglio conservare in un "puntatore ad un elemento lista" il campo puntatore di un nodo qualsiasi di "lista"?

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Perche' non provi con un po' di ragionamento ...?

    x=q.punt;
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5
    e... infatti te l'ho chiesto perche dopo poi quando voglio collegare i nodi, mi da errore:
    codice:
        lista *x;
        x=q.punt;
        
        do
        {
        lista r;
        r=&x;
        x=r.punt;
        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);

  6. #6
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Scusa Salvatore ... ma quale errore ? In quale riga ?

    Il codice che hai mostrato (te lo avevo detto prima) è sbagliato ed è inutile correggerlo perche' non ha senso ...

    Per creare una lista collegata devi vedere l'esempio scritto in C dal link che piu' volte ti ho segnalato ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  7. #7
    Quel link ke mi hai dato fa esempi in PASCAL.
    cmq l'errore me lo da sulla riga:
    r=&x; ed è: no match for 'operator=' in 'r = &x'

  8. #8
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Originariamente inviato da Salvatore_91
    Quel link ke mi hai dato fa esempi in PASCAL.
    Guarda bene ... cerca dove c'e' scritto

    Implementazione nei linguaggi

    e quindi

    Di seguito vi e un esempio completo in C:


    cmq l'errore me lo da sulla riga:
    r=&x; ed è: no match for 'operator=' in 'r = &x'
    Ovvio ... r e' un elemento della lista e &x e' un puntatore a puntatore ad un elemento della lista ... non c'entra assolutamente nulla.

    Questa riga non la scriveresti se avessi una buona conoscenza dei puntatori ... ecco perche' ti rinnovo l'invito a studiare i puntatori se vuoi scrivere programmi del genere ... altrimenti prova con programmi piu' semplici.
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  9. #9
    mi ridici piu precisamente il link?

  10. #10
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Perche' "piu' precisamente" ??

    Il link e'

    http://it.wikipedia.org/wiki/Lista_concatenata
    No MP tecnici (non rispondo nemmeno!), usa il forum.

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.