Quote:
Originariamente inviato da TecnologY
ciao, ho scritto questo programma semplice ma non so se quello che cerco sia possibile, ovvero fare una funzione che si possa eguagliare ad una struct.... quindi dovrebbe dare in output una struct
Codice:
#include <stdio.h>
struct boh{
int p1;
}primo;
struct boh funzione(struct boh x)
{
x.p1=2;
}
int main(){
primo.p1=5;
primo = funzione(primo); //sta assegnazione č totalmente inutile, alla fine stampa sempre 5 anzichč 2
printf("%d", primo.p1);
return 0;
}
in pratica la funzione č sbagliata, qualcuno sa dirmi come andrebbe impostata? so che con i puntatori posso risolvere il problema, ma senza i puntatori? cosė sarebbe migliore, pių versatile
|
la funzione č passata per valore e non per riferimento quindi andando a modificare il valore del campo la modifica viene persa all'uscita della funzione (scope delle variabili)
quindi o la ritorni (e devi ritornarla visto che hai scritto una funzione e non una procedura) oppure ti scrivi una procedura (funzione di tipo void) e passi la struttura per riferimento (&)
__________________
"WS" (p280,cx750m,4790k+212evo,z97pro,4x8GB ddr3 1600c11,GTX760-DC2OC,MZ-7TE500, WD20EFRX)
Desktop (three hundred,650gq,3800x+nh-u14s ,x570 arous elite,2x16GB ddr4 3200c16, rx5600xt pulse P5 1TB)+NB: Lenovo p53 i7-9750H,64GB DDR4,2x1TB SSD, T1000
|