• Regolamento Macrocategoria DEV
    Prima di aprire un topic nella Macrocategoria DEV, è bene leggerne il suo regolamento. Sei un'azienda o un hosting/provider? Qui sono anche contenute informazioni per collaborare con Sciax2 ed ottenere l'accredito nella nostra community!

Problema risolto BUG Programma per aggiungere elementi in una lista!

Quindi con delete del C++ elimino il puntatore a tutti gli elementi di tutti i blocchi che ho creato, con il free elimino un solo blocco puntato dal puntatore. Ricapitolando la funzione che avevo proposto, è valida solo con il C, mentre con le nuove funzioni del C++ ci si semplifica la vita, giusto?

Se ho capito bene, sarei soddisfatto di ciò.
 
Quindi con delete del C++ elimino il puntatore a tutti gli elementi di tutti i blocchi che ho creato, con il free elimino un solo blocco puntato dal puntatore. Ricapitolando la funzione che avevo proposto, è valida solo con il C, mentre con le nuove funzioni del C++ ci si semplifica la vita, giusto?

Se ho capito bene, sarei soddisfatto di ciò.

si , un consiglio non mistificare mai C e C++,soprattutto nella gestione della memoria e dei file.
 
  • Like
Reactions: 1 person
si , un consiglio non mistificare mai C e C++,soprattutto nella gestione della memoria e dei file.

Bene, prima di chiudere vorrei sapere se il codice che ho scritto è migliorabile e se presenta imperfezioni, se si quali sono? *(Ne ho trovata e già risolta una).
Altro dubbio, perché nella funzione che hai proposto (corretta), assegni al puntatore il valore di NULL? Non dovrebbe dopo il delete puntare direttamente a NULL dato che il while è finché è diverso da NULL? Non sarebbe bastato un IF visto che subito dopo gli viene assegnato quel valore?

Del tipo (codice tuo):

Codice:
Perfavore, Entra oppure Registrati per vedere i codici!

Codice mio (che ritengo piu' logico):

Codice:
Perfavore, Entra oppure Registrati per vedere i codici!


*Inoltre, proprio ora ho notato che si sono problemi nella visualizzazione della lista con il primo elemento, infatti dopo aver creato una lista, aggiungendo un intero, essa non è piu' visualizzabile, poiché continua a scorrere all'infinito non fermandosi mai visto che il successivo non punta a niente.
Però fortunatamente sono riuscito a risolvere questo bug aggiungendo:

Codice:
Perfavore, Entra oppure Registrati per vedere i codici!

Attendo una risposta, grazie :emoji_slight_smile:
 
Ultima modifica:
@devilpazzo

se rileggi il mio secondo messaggio nel topic non ho mai scritto di fare il while all'interno della funzione nè tantomeno è utile il controllo dato che lo fai prima di chiamare la funzione. quindi ripropongo il code

Codice:
Perfavore, Entra oppure Registrati per vedere i codici!

quando crei la lista ti sei mangiato un istruzione cioè mettere l'elemento successivo a null. che hai aggiunto tra l'altro.
Per quanto riguarda il resto del codice va bene.
 
Bene, per fortuna ci sono arrivato da solo! Grazie dell'aiuto, però sto notando ora un ultima piccola imperfezione, ovvero non funzionava l'istruzione del default del messaggio di errore dello switch-case. Infatti digitando per esempio 7 o 100 non veniva visualizzato il messaggio, perché il tutto veniva ripetuto finché x era minore di 5, infatti digitando 6 per esempio, il programma terminava senza visualizzare alcun messaggio. Ecco come ho risolto:

Codice:
Perfavore, Entra oppure Registrati per vedere i codici!

Se tutto è giusto, direi che ho risolto.
 
@devilpazzo

vedi che lo switch andava bene così come stava :emoji_confused:
Codice:
Perfavore, Entra oppure Registrati per vedere i codici!

ripeteva fino a quando x era diverso da 5 andava nel default quando digitavi numeri diversi da 5 e stampava un messaggio , se lo volevi prolungare bastava uno sleep. Inoltre se era uguale al 5 usciva dalla funzione evitando di scrivere case 5. Quindi era più performante come stava prima .. poi fa come vuoi ^^
 
Ultima modifica:
@devilpazzo
allora il problema può considerarsi risolto ?
@Rikku poteva farlo anche nel main , ma non è che sia sbagliato scriverlo in un'altra funzione
 
Si lo so che non ha molto senso per te, ma in realtà avevo pensato a un qualcosa di più' sofisticato, ovvero il poter creare più' liste ognuna con la possibilità di inserire tanti oggetti in base alla scelta del utente, quella che hai visto, è solo una base del programma (uno scheletro), poi forse pubblicherò qualcosa più' in la. Per il momento mi soffermerei a studiare e ri-studiare finché non conoscerò approfonditamente la gestione delle liste in tutte i modi possibili e immaginabili.

PS:
Potete chiudere, problema risolto.