Я пытаюсь создать массив структур, где каждая структура представляет собой небесное тело для проблемы, над которой я работаю в своем классе. У меня нет такого большого опыта работы с структурами, поэтому я решил попытаться использовать их вместо целого ряда массивов, однако я постоянно сталкиваюсь с множеством различных ошибок, хотя я пытался реализовать методы что я видел в разных потоках и в stackoverflow (например, в Массив структур в C и C - инициализировать массив structs), однако не все из них применимы, поэтому я не смог полностью скопировать способ сделать это. Прежде чем я покажу вам, что я пытаюсь сделать, я не буду отвечать на комментарии/info/ответы в течение нескольких часов, поскольку мне нужно ложиться спать, так как я просыпаюсь слишком долго, Я действительно сожалею об этом, но я действительно устал после напряженного дня и уже несколько часов работал над этой проблемой.
Дополнительная информация для тех, кто прочитал это: мне не нужно, чтобы это было динамично, я знаю/определяю размер всего заранее. Мне также нужно, чтобы это был глобальный массив (gasp GLOBAL VARIABLES), поскольку я обращаюсь к нему несколькими способами, которые имеют определенные аргументы (т.е. Методы GLUT).
Вот как я определяю структуру в моем заголовке:
struct body
{
double p[3];//position
double v[3];//velocity
double a[3];//acceleration
double radius;
double mass;
};
У меня есть список других глобальных переменных, которые я определяю, прежде чем я определяю внутренность структуры, и один из них - это массив этой структуры (в основном, если я слишком неясен в моем туманном разговоре, строка ниже выше, чем указано выше):
struct body bodies[n];
Просто, чтобы вы знали, n
- это то, что я определенно определил (т.е. #define n 1
).
Я использую этот массив несколькими способами, но наиболее простым и наименее затратным пространством является упрощенная форма моей основной, где я инициализирую все переменные в каждой из структур, просто чтобы установить переменные для определенных, прежде чем изменять их в некотором роде:
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;
}
Текущая ошибка, с которой я столкнулась, - это nbody.c:32:13: error: array type has incomplete element type
, где строка 32 - это место, где я создаю массив структур.
Спасибо за любую помощь, которую вы соизволите дать, я обещаю, что я вернусь к вам в самое последнее время, через 12 часов.
Последнее уточнение по заголовку означает пробел выше int main(void)
, но в том же *.c файле.