Sbagli un sacco di roba, perciò ti presenterò due esempi funzionanti che potrai studiarti.Da notare comunque che C e ricorsione non vanno proprio a braccetto e neanche ricorsione e array.codice:#include <stdio.h> #include <stdlib.h> int *_reverse(int *a, int sz, int *na, int i) { if(i == sz) return na; na[sz-i-1] = a[i]; return _reverse(a, sz, na, i+1); } int *reverse(int *a, int size) { int *na = (int *)malloc(sizeof(int)*size); return _reverse(a, size, na, 0); } void _reverse1(int *a, int *na, int sz) { if(sz == 0) return; *na=*a; return _reverse1(a-1, na+1, sz-1); } int *reverse1(int *a, int size) { int *na = (int *)malloc(sizeof(int)*size); _reverse1(a+size-1, na, size); return na; } int main(void) { int a[4] = {1,2,3,4}; int *b = reverse(a, 4); int *c = reverse1(b, 4); int i; for(i = 0; i < 4; ++i) printf("%d\t%d\n", b[i], c[i]); free(b); free(c); return 0; }

 
			
			 
					
					
					
						 Rispondi quotando
  Rispondi quotando