what is the space complexity of the below program ?

I have to calculate space complexity for this function if we see according to stack size then it will be O(n) but in every recursive call two arrays are consuming extra space that is 2n or of order O(n)

MY DOUBTS

1)When we calculate space complexity for this function the process will be as follows as in every recursive call O(n) extra space is taken by two arrays(I am taking only order of 2n ) and since stack size is O(n) then space complexity is O(n^2)

  1. what will happen if i replace these two arrays with a 2d array then in every recursive call O(n^2) extra space will be taken and since stack size is O(n) then space complexity this time will be O(n^3)

NOTE Nothing special about this function only calculating space complexity leave the garbage value since i am not freeing the memory after recursion

 testfun(n){
 if(n==0)
 return;

 int *a=malloc(sizeof(int)*n);
 int *b=malloc(sizeof(int)*n);
 for(int i=0; i < n ; i++)
 {  a[i]=n+2*i;
    b[i]=n+3*i;
 }

  testfun(n-1);
 free(a);
 free(b);

 }

I am freeing the memory after the recursion happened

//