Je suis heureux de rejoindre votre forum. Maintenant, allons à la baisse; Im ayant des problèmes avec une erreur «erreur de segmentation». Im lire des données à partir d'un fichier binaire, que Im essayant de stocker dans une structure; Voici le code de ce que je fais ou «essaie» de faire. hahahaAide pour la structure (erreur de segmentation)
struct Medico //users are medics
{
int Id_Doctor; //Id User
int Estado; //status of the user
char Nombre[60]; //name of the user
char Clave_Acceso[20]; //password of the user
char Especialidad[40]; //especialty of the user
struct Medico *next;
};
void Cargar_Datos() //load files
{
FILE *Archivaldo; ///file- Archivo means file
struct Medico * head = NULL;
struct Medico * prev, *current;
char especialida[40], password[20]; ///locals for specialty and password
char nombre_doc[60]; ///local for name
int estado_doc, id_doc; // local for status
if((Archivaldo=fopen("md.dat", "a+b"))==NULL)
{
printf("No se pudo abrir el archivo de Medicos\n");
exit(1);
}
rewind(Archivaldo);
current = (struct Medico *) malloc (sizeof(struct Medico));
fread(&id_doc, sizeof(int), 1, Archivaldo);
fread(nombre_doc, sizeof(char), sizeof(nombre_doc), Archivaldo);
fread(password, sizeof(char), 20 , Archivaldo);
fread(especialida, sizeof(char), 40, Archivaldo);
fread(&estado_doc, sizeof(int), 1, Archivaldo);
printf("ID: %d\n", id_doc);
printf("\nDoctor: ");
puts(nombre_doc);
printf("\nPassword: ");
puts(password);
printf("\nEspecialidad: ");
puts(especialida);
printf("\nEstado: ");
if(estado_doc==1)
puts("Activo\n");
else
puts("Inactivo\n");
current->Id_Doctor=id_doc;
strcpy(current->Nombre, nombre_doc);
strcpy(current->Clave_Acceso, password);
strcpy(current->Especialidad, especialida);
current->Estado=estado_doc;
current=current->next;
fclose(Archivaldo);
}
Merci à l'avance. Passez une bonne journée
Veuillez reformater votre message afin que le code soit correctement indenté. En ce moment, c'est illisible. – thkala
Veuillez également essayer de réduire vos exemples au plus petit morceau de code qui reproduira le bogue (c'est une bonne technique de débogage dans tous les cas). Et spécifiez exactement où la segfault se passe (trouvez ceci en l'exécutant dans un débogueur). –
@Reese: merci. Maintenant, ce qui nous manque est le reste du programme ... – thkala