Jak używać pinvoke dla C struct array pointer do C #

Próbuję użyć pinvoke, aby rozmieścić tablicę struktur wewnątrz innej struktury od C do C #. AFAIK, nie mogę.
Zamiast tego w strukturze C deklaruję ptr do mojej tablicy i malloc. Problemy: 1) Jak zadeklarować odpowiednik po stronie C #? 2) Jak mogę przydzielić i używać odpowiednika po stronie C #?

//The C code
typedef struct {
       int a;
       int b; } A;
typedef struct {
      int c;
      // A myStruct[100];    // can't do this, so:
      A *myStruct; } B;

//The c# code:
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)]
public class A{
    int a;
    int b;
}

[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)]
public class B{
      int c;
      // can't declare array of [100] A structures...
     ?
 }

[EDIT]: Jakoś źle zinterpretowałem to, co przeczytałem gdzie indziej, o stałej tablicy obiektów po stronie c #. I jamogą napraw rozmiar tablicy w C Tak skompilowany ok, ale wtedy otrzymuję „odwołanie do obiektu nie ustawione na instancję obiektu” podczas używania:

data.B[3].a = 4567; Więc czytając gdzie indziej o tym, jaki może być ten błąd, dodałem tę metodę:

public void initA()
        {
          for (int i = 0; i < 100; i++) { B[i] = new A(); }
        }

Ponownie skompilowany OK, ale ten sam komunikat o błędzie.

questionAnswers(1)

yourAnswerToTheQuestion