-Per Julinda- malloc e realloc = null

2 views
Skip to first unread message

valentini_simone

unread,
Nov 23, 2007, 11:53:39 AM11/23/07
to prog1-pz0708
Volevo sapere se dobbiamo inserire un controllo nei programmi per vedere se le malloc (o realloc) ritornano NULL ? ..in tal caso dobbiamo segnalarlo, in qualche modo ?

E volevo anche chiederle se c'è un punteggio parziale, cioè se ha senso consegnare un esercizio incompleto. (es. esercizio 2, restituisce il vettore con le stringhe ma non modifica il puntatore al numero delle parole distinte)

La ringrazio.

Julinda

unread,
Nov 24, 2007, 1:31:10 PM11/24/07
to Programmazione1 pz 07-08
Salve,

in caso di allocamento di memoria in modo dinamico e' sempre bene fare
un controllo
di cio' che viene ritornato tramite la malloc o realloc o calloc o
quello che sia.
In caso di NULL, e' di uso comune terminare il programma stampando in
output un messaggio d'errore, del tipo:
"<nomedella funzione:> Fatal Error!! Aborting..."
e di fare exit(0) per terminare il processo relativo al programma in
corso.
Ma sinceramente non so se in classe vi hanno spiegato queste cose,
anche perche' non credo che vi abbiano spiegato
cos'è un processo, e chiamate di sistema di tipo exit (che tra l'altro
credo siano solo relative a sistemi unix, non so se funzionano
ugualmente anche sotto windows).
Per questo, voi fate il controllo, e se una chiamata a malloc vi
ritorna nul, non fate stampare nulla, ma fate terminare
il programma in corso tramite return 0;

Riguardo alla sua seconda domanda, un punteggio parziale non c'è.
Ma perche' mi fa' questa domanda, subito dopo avermi fatta la
precedente? Ha dei problemi nell'allocare la
memoria per il puntatore a intero? Guardi che non e' detto che voi
dobbiate per forza allocare memoria per quello.
Infatti potete fare una cosa del tipo:

... int np;

e poi alla chiamata della funzione passare &np (che e' appunto il
puntatore che punta a np)

e' piu' chiaro ora?


Cordiali Saluti
Julinda Stefa
On Nov 23, 5:53 pm, "valentini_simone" <valentini_sim...@libero.it>
wrote:

Julinda

unread,
Nov 24, 2007, 1:44:19 PM11/24/07
to Programmazione1 pz 07-08
Salve,

nella precedente mail c'è stata una svista da parte mia. Nella
dichiarazione di np ovviamente intendevo

long np

e poi chiamare la funzione con &np che e' appunto il puntatore a un
long.

essendo che poi la funzione si aspetta un puntatore a long.

Ma voi ovviamente questo lo fate nella fase di testing personale della
vostra funzione,
insomma prima di consegnare la soluzione dell'esercizio.
Anche perche' vi ribadisco che mi dovete inviare solo la funzione,
niente main che poi
da' errore, ok?

saluti
Julinda
> > La ringrazio.- Hide quoted text -
>
> - Show quoted text -
Reply all
Reply to author
Forward
0 new messages