Estoy tratando de hacer una serie de estructuras donde cada estructura representa un cuerpo celeste para el problema en el que estoy trabajando en mi clase. No tengo mucha experiencia con las estructuras, por lo que decidí tratar de usarlas en lugar de un conjunto completo de matrices, sin embargo, sigo encontrando numerosos errores diferentes, a pesar de que he intentado implementar las técnicas que he visto en varios subprocesos y en stackoverflow (como en Array of structs in C y C - initialize array of structs), sin embargo, no todos ellos eran aplicables, por lo que no pude copiar completamente la manera de hacerlo. Solo una advertencia antes de mostrarle lo que estoy tratando de hacer, no podré responder a los comentarios/preguntas/respuestas durante varias horas porque necesito acostarme porque he estado despierto durante demasiado tiempo, Realmente lo siento por esto, pero estoy realmente cansado después de haber tenido un día ocupado y haber trabajado en este problema durante varias horas.¿Cómo se hace una serie de estructuras en C?
Más información para quienes han leído esto: no necesito que esto sea dinámico, conozco/defino el tamaño de todo de antemano. También necesito que sea una matriz global (gaspVARIABLES GLOBALES) ya que estoy accediendo a esto en varios métodos diferentes que tienen argumentos definidos (es decir, métodos GLUT).
Así es como estoy definiendo la estructura en mi cabecera:
struct body
{
double p[3];//position
double v[3];//velocity
double a[3];//acceleration
double radius;
double mass;
};
Tengo una lista de otras variables globales que estoy definiendo antes de que yo defino el interior de la estructura, y una de ellas es la matriz de esta estructura (básicamente, si estoy siendo demasiado claro en mi hablar empañado, la línea de abajo está por encima de las cosas de arriba):
struct body bodies[n];
Para que lo sepas, n
es algo que no tengo legítimamente definido (es decir, #define n 1
).
Utilizo esta matriz en varios métodos diferentes, pero la más fácil y la que consume menos espacio es una forma simplificada de mi main donde inicializo todas las variables en cada una de las estructuras, solo para establecer las variables con certeza antes de modificarlos de alguna manera:
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;
}
el error actual que estoy enfrentando es nbody.c:32:13: error: array type has incomplete element type
, donde la línea 32 es donde estoy haciendo el conjunto de las estructuras.
Gracias por toda la ayuda que se digna dar, le prometo que me pondré en contacto con usted a más tardar dentro de 12 horas.
Una última aclaración, por encabezado me refiero al espacio sobre int main(void)
pero en el mismo archivo * c.
Bueno, funciona bien para mí. ¿No estás declarando 'struct body bodies [n];' before 'struct body {}' declaration? – Jack