I tried to write code where i have to return the pointer pointing to the first element of array.
I tried using this:-
int *construct(int arr[],int n)
{
  int size=(int)(ceil(log2(n)));
  size=2*pow(2,size)-1;
  int st[size];
  for(int i=0;i<size;i++)
    st[i]=INT_MAX;
  constructUtil(arr,st,0,n-1,0);
  int *pt=&st[0];
  return pt;
} 
This gave me error. But when i declared the same array like this:
int *st=new int[size];
It executed successfully.
What is the difference between these two?
 
    