I am trying to define a pointer to a struct as a global variable and access the value of its variables in different functions. But I realized that the values are cleared after the next function call. Am I doing something wrong? 
struct St {
  double* varDouble;
};
struct St* StGlobal;
void Fun1(){
 double initDouble[2][1] = {{1},{2}};
 StGlobal = (struct St*)malloc(sizeof(struct St));
 StGlobal->varDouble = *initDouble;
};
void Func2(){
 for (i =0;i<2;i++){
    printf("%d\n", StGlobal->varDouble);
   } 
};
int main(){
Func1();
Func2();  // value of StGlobal->varDouble is no longer what was assigned to it in Func1
};
 
    
 
    