Loop infinito senza errori

di
Anonimizzato28411
il
6 risposte

Loop infinito senza errori

Buongiorno, non capisco assolutamente il motivo del perchè questo codice fa questo loop infinito, per favore aiutatemi...

#include <iostream>
struct cell
{
 int val;
 cell *next;
};
typedef cell *list;

void insertinOrder(list& l, int x)//inserisce x in ordine nella lista che è già ordinata
{
 cell *aux = new cell;//nuovo elemento da inserire
 aux->val = x;
 
 cell *curr = l;
 cell *prev = nullptr;
 while ((curr != nullptr) && (curr->val <= x))
 {
  curr = curr->next;
  prev = curr;
 }
 aux->next = curr;
 if (curr == l)
  l = aux;
 else 
  prev->next = aux;
}
void headInsert(list& l, int x)//inserisce x in testa alla lista
{
 cell *aux = new cell;
 aux->next = l;
 aux->val = x;
 l = aux;
}
void print(list l)//stampa la lista
{
 cell *curr = l;
 while (curr != nullptr)
 {
  std::cout << curr->val << ' ';
  curr = curr->next;
 }
 std::cout << std::endl;
}
int main()
{
 list l = nullptr;
 headInsert(l, 2);
 headInsert(l, 0);
 insertInOrder(l, 1);
 print(l);
}
Non lo so magari è il mio pc che non funziona più...

6 Risposte

  • Re: Loop infinito senza errori

    Il PC non c'entra ... rivedi il codice, fai un po' di debugging ...

    Quando comincia il loop?

    Metti un breakpoint nelle varie linee del main e cerca di capire in quale parte il codice cicla ...
  • Re: Loop infinito senza errori

    Cos'è un breakpoint? Comunque cicla a causa della chiamata della funzione che inserisce in ordine mi sembra
  • Re: Loop infinito senza errori

    Su visual studio funziona, su linux no...
  • Re: Loop infinito senza errori

    Risolto...
  • Re: Loop infinito senza errori

    ???
  • Re: Loop infinito senza errori

    L' errore era dato dal fatto che la lista creata non era ordinata come richiedeva l' esercizio, se è ordinata la funzione inserisce l' elemento...
Devi accedere o registrarti per scrivere nel forum
6 risposte