L'array deve essere passato tramite puntatore.
L'array, se definito internamente alla funzione, deve essere statico; altrimenti allocato dalla funzione chiamante.
Oppure deve essere allocato dinamicamente in memoria.
Quindi
codice:int *funzione(void) { static int a[3]; a[0]=111; a[1]=222; a[2]=333; return(a); } void main(void) { int *a; a=funzione(); printf("valore di a[0] %d\n", a[0]); printf("valore di a[1] %d\n", a[1]); printf("valore di a[2] %d\n", a[2]); }