Jak utworzyć tablicę struktur w C?

Próbuję utworzyć tablicę struktur, w której każda struktura reprezentuje ciało niebieskie.

Nie mam tak dużego doświadczenia ze strukturami, dlatego postanowiłem spróbować ich użyć zamiast całej grupy tablic. Jednak ciągle napotykam na wiele różnych błędów. Próbowałem zaimplementować techniki, które widziałem w różnych wątkach i na StackOverflow (takie jakTablica struktur w C iC - inicjalizuj tablicę struktur), jednak nie wszystkie z nich miały zastosowanie.

Dalsze informacje dla tych, którzy przeczytali to do tej pory: nie potrzebuję tego, aby być dynamicznym, wiem / definiuję rozmiar wszystkiego wcześniej. Potrzebuję również, aby była to tablica globalna, ponieważ uzyskuję do niej dostęp w kilku różnych metodach, które mają zdefiniowane argumenty (tj. Metody GLUT).

W ten sposób definiuję strukturę w moim nagłówku:

<code>struct body
{
    double p[3];//position
    double v[3];//velocity
    double a[3];//acceleration
    double radius;
    double mass;
};
</code>

Mam listę innych zmiennych globalnych, które definiuję, zanim zdefiniuję wnętrze struktury, a jedną z nich jest tablica tej struktury (zasadniczo, jeśli jestem zbyt niejasny w moim zamglonym mowie, linia poniżej) powyżej powyższych rzeczy:

<code>struct body bodies[n];
</code>

Tak, żebyś wiedział,n jest czymś, co słusznie zdefiniowałem (tj.#define n 1).

Używam tej tablicy w kilku różnych metodach, ale najłatwiejszą i najmniej zajmującą miejsce jest uproszczona forma mojej głównej. W tym miejscu inicjalizuję wszystkie zmienne w każdej ze struktur, aby ustawić zmienne na pewien czas, zanim w jakiś sposób je zmodyfikuję:

<code>  int a, b;
 for(a = 0; a < n; a++)
 {
        for(b = 0; b < 3; b++)
        {
            bodies[a].p[b] = 0;
            bodies[a].v[b] = 0;
            bodies[a].a[b] = 0;
        }
        bodies[a].mass = 0;
        bodies[a].radius = 1.0;
 }
</code>

Obecny błąd, z którym się borykamnbody.c:32:13: error: array type has incomplete element type gdzie linia 32 to miejsce, w którym tworzę tablicę struktur.

Jedno ostatnie wyjaśnienie, przez nagłówek mam na myśli miejsce powyżejint main(void) ale w tym samym*.c plik.

questionAnswers(7)

yourAnswerToTheQuestion