Variabili dinamiche e puntatori

di il
6 risposte

Variabili dinamiche e puntatori

Ciao a tutti!

..Come potete vedere, sono un nuovo membro del sito e ho subito un problema da sottoporvi...

allora..io devo dichiarare in C++ una struttura nodo con i campi città, temp e succ (che punta al nodo successivo..), per cui io dichiaro..
 struct nodo
{
   string citta;
   float temp;
   struct nodo *succ;
}
struct nodo* testa;
testa=NULL;
struct nodo* nuovo;
struct nodo* p; 
..però mi dà errore su testa, mi dice testualmente:" two or more data types in declaration of 'testa'...

..dove sta l'errore??

6 Risposte

  • Re: Variabili dinamiche e puntatori

    Togli struct nella dichiarazione di testa, nuovo e p.
  • Re: Variabili dinamiche e puntatori

    Ok grazie.. ..adesso il programma si esegue, ma c'è ancora un problema..voglio effettuare la carica..ecco, ho scritto la sintassi del programma in questo modo...
      case 1:
             {  
                  cout<<"inserisci citta'"<<"\n";
                  cin>>c;
                  cout<<"inserisci temperatura"<<"\n";
                  cin>>t;
                  nuovo->citta=c;
                  nuovo->temp=t;
                  cont++;
                  somma=somma+nuovo->temp;
                  nuovo->succ=testa;
                  testa=nuovo;
                  media=static_cast<float>(somma)/cont;
                  break;
             }      
    
    ..appena inserisco la prima città però il programma termina di eseguirsi a causa di qualche problema..

    ..scusate ma questa è la prima volta che lavoroo in c++ con le variabili puntatori e dinamiche, per cui non conosco ancora bene il funzionamento..
  • Re: Variabili dinamiche e puntatori

    Nuovo è un puntatore a strcuct di tipo nodo, cioè punta ad una variabile di tipo nodo. Siccome non lo fai puntare a nulla (non c'è allocazione di memoria) per forza che il programma si pianta.
    prima di inserire delle variabili devi imparare ad usare la parola chiave new.
    
    nuovo = new nodo;
    
    poi puoi usare la varibile nuovo che adesso punta ad una poszione in memoria di dimensione giusta per opsitare i membri dello struct nodo. All uscita del programma devi usare la parola chiave delete per far liberare lo spazio di memoria occupato.
    
    delete nuovo;
    
  • Re: Variabili dinamiche e puntatori

    Ah, perfetto..ecco ad esempio questa era un'istruzione che non conoscevo, thanks..

    ..un'ultima cosa..l'algoritmo che voglio effettuare prevede la visualizzazione in output delle città che hanno la temperatura maggiore della media..io ho scritto questo pezzo di programma per effettuare i controlli..
      if(testa=NULL)
                  cout<<"pila vuota"<<"\n";
                  else
                  {
                      do
                      {
                        p=testa;
                        if(p->temp>media)
                        {
                         cout<<p->temp<<"\n";
                        }
                        p=p->succ;
                      }
                      while(p!=NULL);
                  } 
    ..ma anche in questo caso il programma si pianta, e non mi fa visualizzare nulla..puoi "analizzare" anche quest'ultimo pezzettino di programma?
  • Re: Variabili dinamiche e puntatori

    
                        p=testa; //mettilo solo all'inizio non ad ogni ciclo
                      do
                      {
    
                        if(p->temp>media)
                        {
                         cout<<p->temp<<"\n";
                        }
                        p=p->succ;
                      }
                      while(p!=NULL);
    
    possiamo fare qualcos'altro per Lei oggi? Ciao
  • Re: Variabili dinamiche e puntatori

    Ahahahahah.. ..no grazie, hai fatto già abbastanza..!

    ..Ti ringrazio immensamente.. ..alla prossima!
Devi accedere o registrarti per scrivere nel forum
6 risposte