Initialize Pointer Members of C++ Structures for MATLAB Interface to Library
Although your code might first allocate a struct and subsequently assign values to its
      members, the MATLAB® interface does not support assigning a new object to a pointer member. For
      example, this header defines a struct variable S2 with a member pointer to
      struct S1.
struct S1 {
   S1() {};
};
struct  S2 {
   S1 *s1;
   S2() {};
};Suppose that you built this code into library lib. When you try to
      reference pointer s1, it points to random memory, which results in
      unpredictable behavior.
s2Obj = clib.lib.S2; s2Obj.s1
To work around this issue, initialize the pointer inside the struct definition:
struct S1 {
   S1() {};
};
struct  S2 {
   S1 *s1;
   S2() {};
   S1 s1 = S1();   // initialize pointer
};