Как вы делаете массив структур в C?

Я пытаюсь создать массив структур, где каждая структура представляет небесное тело.

У меня нет такого большого опыта работы со структурами, поэтому я решил попробовать использовать их вместо целой группы массивов. Тем не менее, я продолжаю сталкиваться с многочисленными различными ошибками. Я пытался реализовать методы, которые я видел в различных потоках и в StackOverflow (таких какМассив структур в Си а такжеC - инициализировать массив структур), однако не все из них были применимы.

Дополнительная информация для тех, кто прочитал это далеко: мне не нужно, чтобы все это было динамичным, я знаю / определяю размер всего заранее. Мне также нужно, чтобы это был глобальный массив, так как я обращаюсь к нему несколькими различными методами, которые определили аргументы (то есть методы GLUT).

Вот как я определяю структуру в своем заголовке:

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

У меня есть список других глобальных переменных, которые я определяю перед тем, как определить внутреннюю часть структуры, и одной из них является массив этой структуры (в основном, если я слишком непонятен в моем неясном высказывании, строка ниже выше материала выше)

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

Просто чтобы ты знал,n это то, что я определил законным образом (т.е.#define n 1).

Я использую этот массив в нескольких различных методах, но самый простой и наименее занимающий место - это упрощенная форма моего основного. Здесь я инициализирую все переменные в каждой из структур, просто чтобы установить переменные до того, как я их каким-либо образом модифицирую:

<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>

Текущая ошибка, с которой я сталкиваюсь,nbody.c:32:13: error: array type has incomplete element type где строка 32 - это то, где я делаю массив структур.

Последнее уточнение, под заголовком я имею в виду пространство вышеint main(void) но в том же*.c файл.

Ответы на вопрос(7)

Ваш ответ на вопрос