Quote Originariamente inviata da deimos88 Visualizza il messaggio
1) Ho visto che mi hai corretto la definizione di STRINGA ... ma se io uso
codice:
typedefchar * STRINGA;
non dovrebbe in automatico creare un array di caratteri della lunghezza della stringa che di volta in volta vado a passare?
Forse intendi
codice:
typedef char *STRINGA;
In ogni caso no: char * è solo un puntatore a carattere che contiene un indirizzo di memoria, questa memoria devi allocarla tu. Il metodo più semplice è usare un array al posto di un puntatore, il metodo più difficile è quello di aggiungere un po' di funzioni che ti gestiscano la memoria e allacorla dinamicamente.
Quote Originariamente inviata da deimos88 Visualizza il messaggio
2) Hai ragione non ci avevo pensato che idiota. Niente metodi in C!!! Quindi mi tocca passare ogni volta l'elemento su cui operare alle funzioni... e ovviamente trasformare tutto in puntatori (fin qui ci sono)
Ma così facendo dove lo metto il puntatore "list" che dovrebbe puntare al primo record se esistente o a null altrimenti..
Puoi creare una struttura e che non è altro la parte di non-metodi che utilizzeresti in un linguaggio ad oggetti, tuttavia nel tuo codice hai un solo elemento per cui il creare una struttura con un solo elemento è (per dire) un surplus, quindi ti basta un puntatore all'elemento.

Quote Originariamente inviata da deimos88 Visualizza il messaggio
3) Perchè la logica è scorretta se vi è solo un elemento? o se si cancella il primo elemento inserito? (sempre per via della sparizione del puntatore "list" o non c'entra? )
Perché l'elemento della lista da cui tu accedi agli altri è sempre il primo che hai inserito, quindi se cancelli il primo elemento inserito non sarai più in grado di accedere agli altri.
Perché se la lista ha un solo elemento e lo cancelli la "testa" della lista non sarà impostata a NULL.

Quote Originariamente inviata da deimos88 Visualizza il messaggio
4) ok i ritorni li sistemavo dopo grazie comunque!
Ti avrebbero dato errore o warning in compilazione.

Quote Originariamente inviata da deimos88 Visualizza il messaggio
5) Un ultima domanda, se all'interno delle funzioni invece di creare un altro "Dato *p" potrei utilizzare direttamente il "*d" che passo come argomento alla funzione o questo andrebbe a creare casini???
Sì e no, cerca di capire da solo il perché