E' quasi perfetto ... manca la liberazione della memoria e il controllo dell'allocazione ...
codice:int main() { int v1[10]={2,4,11,6,17,1,24,4,45,3}; int i=0; int dim=0; int *p; p=elabora(v1,&dim); for (i=0;i<dim;i++) printf("%d ",p[i]); if(p) free(p); system("PAUSE"); return 0; } int* elabora(int v1[], int *dim) { int *v2; int i,N=0; for (i=0;i<10;i++) if(v1[i]>5) N++; v2=(int *) malloc (N*sizeof(int)); if(v2) { for (i=0;i<10;i++) if(v1[i]>5) { v2[*dim]=v1[i]; (*dim)++; } } return v2; }