io ho risolto così adesso va!!!ma non capisco la differenza tra il vecchio codice e questo che posto adesso..Grazie in anticipo..

FILE.C
codice:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include "ex7-es3.h"
#define N 4
 int* invertiArray(int* a, unsigned int size){
     int cont=0;
     int cont2=N-1;
     int* nuovoarray;
     nuovoarray=(int*)malloc((size)*sizeof(int));
     mia(nuovoarray,a,size,cont,cont2);
     return nuovoarray;    
}


void mia(int* c,int* a,unsigned int size,int cont,int cont2){
    if(a[cont] == a[size-1]){
        c[cont2]=a[cont];
    }
    else{
        mia(c,a,size,cont+1,cont2-1);
        c[cont2]=a[cont];
    }
}


FILE.MAIN.C

codice:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include "ex7-es3.h"

#define N 4

int main(){
    int array[N];
    int* p;
    for(int i=0;i<N;i++){
        printf("inserisci l'elemento in pos[%d]: ",i);
        scanf("%d",&array[i]);
    }
    p=invertiArray(array,N);
    for(int q=0;q<N;q++){
        printf("%d ",p[q]);
    }
    return 0;