|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Member
Iscritto dal: Jul 2003
Messaggi: 280
|
[C]Dubbio su funzione
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 ? |
![]() |
![]() |
![]() |
#2 |
Moderatore
Iscritto dal: Nov 2003
Messaggi: 16211
|
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.
__________________
Ubuntu è un'antica parola africana che significa "non so configurare Debian" ![]() Scienza e tecnica: Matematica - Fisica - Chimica - Informatica - Software scientifico - Consulti medici REGOLAMENTO DarthMaul = Asus FX505 Ryzen 7 3700U 8GB GeForce GTX 1650 Win10 + Ubuntu |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 04:04.