Visualizzazione dei risultati da 1 a 2 su 2

Discussione: [C++] errore sul lista

  1. #1

    [C++] errore sul lista

    Ciao raga, mi sapreste dire ed correggere l'errore che c'e' in questo programma??:
    codice:
    #include <iostream>
    using namespace std;
    struct lista
    {
     int num;
     lista *next;
    };
    
    int main()
    {
     lista *p1;
     lista *p2;   
     lista **x;   
     int N,N1,y; 
     //Primo caricamento
     y=1;  
     cout<<"Inserisci il numero di nodi della prima lista (min 2) = ";
     cin>>N; 
     lista p;
     cout<<y<<") Inserisci il numero = ";
     cin>>p.num;
     x=&p.next;
     
     do
     {
      y++;         
      lista *r = new lista;
      r->next = NULL;
      *x = r;
      x = &r->next;
      cout<<y<<") Inserisci il numero = ";
      cin>>r->num;        
     }
     while(y+1<N+1);
     //Secondo caricamento
     y=1;
     cout<<"Inserisci il numero di nodi della seconda lista (min 2) = ";
     cin>>N1;
     lista q;
     cout<<y<<") Inserisci il numero = ";
     cin>>q.num;
     x=&q.next;
     
     do
     {
      y++;         
      lista *s = new lista;
      s->next = NULL;
      *x = s;
      x = &s->next;
      cout<<y<<") Inserisci il numero = ";
      cin>>s->num;        
     }
     while(y+1<N1+1);
     
     //Inizio Controllo
     p1= &p;
     p2= &q;
     lista t;
     if (p.num > q.num)
                      {
                       t.num=q.num;
                       q=q.next;    // qui c'e' l'errore
                      }
                      else
                      {
                       t.num=p.num;
                       p=p.next;   // anche qui
                      }
     system("PAUSE");
    }
    Mi segnala due errori su quelle due righe segenalte da me sopra (in totale 4):
    no match for 'operator=' in 'q = q.lista::next'
    candidates are: lista& lista:perator=(const lista&)

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,466
    Non ho controllato il codice ma quello che si nota e' che

    q

    e' di tipo lista

    mentre

    q.next

    e' di tipo lista *

    da cui l'incompatibilita' nell'assegnazione.

    Perche' hai tentato di assegnare un "puntatore a lista" ad una lista, lo sai tu in base all'algoritmo che volevi implementare ... e saprai correggerlo ...
    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 © 2024 vBulletin Solutions, Inc. All rights reserved.