Quote Originariamente inviata da deimos88 Visualizza il messaggio
1) Sisi intendevo quello, non è la prima volta che utilizzo questa definizione di stringa e non ho mai avuto problemi con l'allocazione, mi fa tutto in automatico..
E' undefined behavior, il fatto che funzioni è un puro caso.

Quote Originariamente inviata da deimos88 Visualizza il messaggio
2) Sisi infatti non riuscivo a capire come creare il dizionario, cioè mi sembrava inutile un solo elemento.. ma in questo modo in pratica ho un doppio puntatore a un elemento dato.. giusto?
E' diverso avere un puntatore ad un oggetto e un puntatore ad un puntatore ad un oggetto.

Quote Originariamente inviata da deimos88 Visualizza il messaggio
4) sisi lo so, ma avevo altri problemi piu gravi ahahahahha
Si parte sempre da quello che si può correggere e si sa come correggere

Quote Originariamente inviata da deimos88 Visualizza il messaggio
3/5) Si io accedo sempre dal primo elemento inserito, ma in teoria quando cancello un elemento (se non è il primo non ho problemi) se è il primo o l'unico dovrei aggiornare il puntatore dal quale accedo (il famoso "list" che adesso è sparito ed è diventato *p) ... quindi se nella funzione cancella io aggiorno il puntatore dal quale accedo dovrebbe risolversi il problema... ma qui si ripone il problema dell'usare direttamente l'argomento che passo alla funzione e non un altro puntatore!)
A dire il vero list è diventato (*d), p è rimasto p (concettualmente), ha solo cambiato tipo.
Il Sì e No voleva dire: si puoi farlo, ma devi stare attento alle modifiche che apporti nelle variabili di main e comunque nel tuo caso non potresti farlo perché (*d) ti serve per tenere traccia della testa della lista circolare.
Sì ti basta cambiare il valore di (*d).

Prova a correggere cancella alla luce di quello che ho detto e quello che hai capito da te.