aqui les dejo el codigo de las funciones especificas donde tengo el problema.
Estas seria la estrutura basica de la lista enlazada y sus punteros del principio y final
Código:
typedef struct paises{
int IDpais;
char Pais[20];
int NoParticipantes;
int NoMedallas;
struct paises* p;
} Paises;
Paises*PAIprimero=NULL;
Paises*PAIultimo=NULL;
estas serian las funciones con las que tendria problemas, agrego la funcion que usè para guardar los datos, que al parecer me sirvio, pero por si llega a ser el problema lo dejo (soy algo novato, asi que espero me perdonen algunas redundancias o errores de novato aqui )
Código:
void insertarPaisesG(int ID, char Nombre[]){
Paises * nuevo;
nuevo = (Paises *)malloc(sizeof(Paises));
nuevo->IDpais=ID;
strcpy(nuevo->Pais, Nombre);
if(PAIprimero->p!=PAIultimo){
PAIprimero=nuevo;
PAIprimero->p=PAIultimo;
}
else{
nuevo->p=NULL;
PAIultimo->p=nuevo;
PAIultimo=nuevo;
}
}
void guardarPaises(){
printf("\n\n\nGuardando informaci�n de paises");
FILE * archivo = fopen("Paises.dat", "wb");
if(archivo == NULL){
printf("\n\n\nError al guardar en archivo");
return;
}
Paises * recorre = PAIprimero;
while (recorre != NULL){
fwrite(recorre, sizeof(Paises), 1, archivo);
recorre = recorre->p;
}
fclose(archivo);
}
void cargarPaises(){
FILE * archivo = fopen("Paises.dat", "rb");
if(archivo == NULL){
printf("\n\n\nError al cargar desde archivo");
return;
}
Paises * actual = (Paises *) malloc(sizeof(Paises));
int leidos;
do{
leidos = fread(actual, sizeof(Paises), 1, archivo);
if (leidos == 1)
insertarPaisesG(actual->IDpais, actual->Pais);
} while (leidos == 1);
fclose(archivo);
}
de antemano gracias por la ayuda, y si se llegara a ocupar el codigo completo lo pondria mas adelante