PDA

Visualizza la versione completa : [C] Controllare che l'allocazione di memoria sia andata a buon fine


dogo21sob
29-10-2008, 16:44
Dopo che alloco della memoria per un array come faccio a controllare che l'allocazione sia andata a buon fine e che la memoria disponibile era, quindi, sufficiente per allocare l'array?

Considerando che alloco la memoria in questo modo:

aaa = (int *) calloc(N,sizeof(int));

va bene se poi controllo cosė?

if(aaa==NULL) printf("Errore: Memoria insufficiente!");

:master:

oregon
29-10-2008, 17:24
La documentazione per la funzione calloc

http://www.cplusplus.com/reference/clibrary/cstdlib/calloc.html

riporta ...

If the function failed to allocate the requested block of memory, a NULL pointer is returned.

... quindi il controllo che fai e' corretto ...

Ma fai attenzione perche' non basta scrivere a video la frase ... in caso di errore il programma non deve continuare ...

dogo21sob
29-10-2008, 18:03
perchč non posso dare quell'errore e chiedere di reinserire N e riprovare ad allocare?? :master:

oregon
29-10-2008, 19:14
Sė ... intendevo dire che non basta segnalare l'errore come hai mostrato tu nel codice che hai scritto ...

Loading