Ora neache a me dà errori, avevo dimenticato il prototipo della funzione.
ho fatto questi 2 esperimenti che mi sembrano significativi.
Creo una struttura interna a una funzione, nel primo caso con struct e nel secondo caso con malloc e poi la fnx ritorna un puntatore.
Nel primo caso richiamando la funzione piu volte ottengo sempre lo stesso indirizzo. Con la malloc ogni volta restituisce indirizzi diversi.
Ho anche provato a restituire array per valore, ma non ho avuto successo :bubu:
codice1
codice2codice:#include <stdio.h> struct a{ int val1; int val2; }; struct a *funx01(){ struct a struttura; struttura.val1 = 12; return &struttura; } int main() { printf("%d\n", funx01()); printf("%d", funx01()); getch(); return 0; }
codice:#include <stdio.h> struct a{ int val1; int val2; }; struct a *funx01(){ struct a* p = (struct a*) malloc(sizeof(struct a)); p->val1 = 12; return p; } int main() { printf("%d\n", funx01()); printf("%d", funx01()); getch(); return 0; }

Rispondi quotando