typedef struct my_struct {
  int A;
  int B;
} my_struct;
void foo(my_struct * a) {
  a= malloc(5 * sizeof ( my_struct));
  a[1].B = 3;
}
int main(int argc, char** argv) {
  my_struct * newStruct;
  foo(newStruct);
  printf("\n%d", newStruct[1].B);
}
Trying to print newStruct[1].B results in a seg fault. What is wrong with the memory allocation here and what is the correct way to allocate the memory.
 
    