View Single Post
Old 30-11-2012, 14:41   #2
!fazz
Moderatore
 
L'Avatar di !fazz
 
Iscritto dal: Nov 2006
Messaggi: 21813
Quote:
Originariamente inviato da TecnologY Guarda i messaggi
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
!fazz č offline   Rispondi citando il messaggio o parte di esso