PDA

View Full Version : [C]Dubbio su funzione


honny
10-08-2005, 10:01
dopo un po di tempo,riprendendo in mano C ho scritto una funzione del genere :

//DE_PObject e' un tipo puntatore a struct
DE_PObject DE_ObjectFree(DE_PObject DE_Variabile);

l' utilizzo nel main sarebbe tipo :

DE_PObject my_object;
my_object=DE_ObjectFree(my_object);

in pratica questa funzione :

1-prende come parametro un DE_PObject
2-disalloca la struct
3-restituisce gia' un NULL per sicurezza

IL DUBBIO E' :

con una sola funzione come indicato sopra , posso usare la stessa variabile sia come paramatro, sia per assegnare il valore di ritorno della funzione ?

Ziosilvio
10-08-2005, 10:07
Sì.
Nelle assegnazioni, gli operandi vengono valutati da destra a sinistra.
Quindi, la prima valutazione di my_object avviene al momento della chiamata di DE_ObjectFree, la quale libera la zona corrispondente al valore originario di my_object.
A quel punto, il valore NULL restituito da DE_ObjectFree viene passato a my_object, che però in quel momento conteneva l'indirizzo di una zona della memoria che era stata appena liberata.