(solo per chiarire) La mia affermazione "il programma funziona" non era un presupposto di saccenza, era per far capire che chiedevo aiuto non per il completamento di cio' che dovevo ottenere con il programma, ma una sua eventuale sistemazione/miglioramento o correzione degli errori
Ringrazio per chi ha risposto e mi appresto a seguire i consigli e sistemare.
Non ci avevo proprio minimamente pensato.Originariamente inviato da MacApp
se la malloc dovesse fallire, il tuo programma produrrebbe un comportamenento indefinito (che nel caso fortunato sarebbe un crash del programma).
Controlla SEMPRE gli eventuali errori restituiti dalle funzioni che utilizzi.
Dunque, la malloc (a buon fine) mi ritorna un puntatore alla memoria che viene allocata, quindi se fallisce presumo mi ritorni un puntatore nullo. _Se_ non ho detto castronerie, potrei controllare l'eventuale errore cosi', che dite?
codice:char *buffer = (char *)malloc(MAX_LENGTH*sizeof(char)); if (buffer == NULL) { printf("Errore nell'allocazione di memoria.\n"); exit(EXIT_FAILURE); }La prendo per buona. Mi date pero' una piccola spiegazione? Se ne capisco le motivazioni imparo qualcosa.Originariamente inviato da MItaly
Se l'allocazione dinamica non è strettamente necessaria evitala. In questo caso basta un char buffer[MAX_LENGTH];
Ora, richiamando le due questioni viste ora (possibilita' di fallimento di una malloc ed uso di una "allocazione diretta" (passatemi il termine) al posto di una dinamica (ove non strettamente necessario il contrario), mi viene da chiedermi: e' possibile che fallisca anche un'allocazione del tipo:
Siate clementi, i miei dubbi sono portati dal newbie che c'e' in mecodice:char buffer[MAX_LENGTH];![]()


Rispondi quotando