Hola a todos
Tengo un problema con una lista enlazada y os puedo asegurar que no se donde esta el error. Os pongo en situacion:
Estoy haciendo un juego en C++ y SDL tipo estrategia pero con unas unidades fijas, es decir, al principio selecciono cuales quiero y ya no puedo aumentar mi ejercito. Para guardar los datos de las unidades estoy usando listas enlazadas con un estructura como la siguiente:
struct unidad{
int x;
int y;
int w;
int h;
int color;
int tipoUnidad;
int numeroUnidad;
bool movimiento;
};
struct ejercitos{
unidad tropa;
ejercitos *sig;
};
Luego en mi codigo inicio mi lista enlazada:
void Inicializa(ejercitos *&ejercitoaformar){
unidad tropa;
ejercitoaformar = new ejercitos;
tropa.color = 6;
tropa.h = 10;
tropa.w = 10;
tropa.movimiento = true;
tropa.numeroUnidad = 1;
tropa.tipoUnidad = 1;
tropa.x = 600;
tropa.y = 400;
ejercitoaformar->tropa = tropa;
ejercitoaformar->sig = 0;
}
y hasta ahi todo bien y sin errores de ningun tipo, pero cuando mas adelante llamo a otra funcion para añadir las nuevas unidades que voy seleccionado a mi lista, esta por arte de magia aparece vacia, es decir, no tiene nada pese a que unas lineas mas arriba la he inicializado con el codigo que os he puesto.
La funcion de inicializacion y la de añadir nueva unidad estan ambas, junto a otras mas, en un fichero diferente desde el que las llamo pero su cabecera si se encuentra incluida en el fichero llamador. No se porque la lista se vuelve vacia de pronto, no se si al bucle principal del programa tendra algo que ver, no lo se, pero ya no puedo mas, he miraado el codigo, lo he cambiado, lo he vuelto a cambiar, lo he cambiado otra vez y no se que hacer mas.
Cualquier tipo de comentario sera de gran ayuda.
Gracias