Bueno, ya me deshice de
variables globales y de los
scanf(), pero curiosamente sigue pasando el mismo error
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
struct _contacto {
char nombre[33];
char telefono[13];
struct _contacto *siguiente;
};
struct _contacto *primero, *ultimo;
void agregar_contacto()
{
struct _contacto *nuevo;
nuevo
= (struct _contacto
*)malloc(sizeof(struct _contacto
)); if(nuevo==NULL){
printf("\nNo hay espacio suficiente."); return;
}
printf("\n\nAgregar contacto\n"); fgets(nuevo
->nombre
,32,stdin
); fgets(nuevo
->telefono
,12,stdin
); nuevo->siguiente = NULL;
if(primero==NULL){
primero = nuevo;
ultimo = nuevo;
} else {
ultimo->siguiente = nuevo;
ultimo = nuevo;
}
}
void buscar_contacto_tlfn()
{
struct _contacto *busqueda, *actual;
busqueda
= (struct _contacto
*)malloc(sizeof(struct _contacto
)); if(busqueda==NULL){
printf("\nNo hay espacio suficiente."); return ;
}
printf("\n\nBuscar contacto por telefono\n"); printf("----------------------------"); fgets(busqueda
->telefono
,12,stdin
); actual = primero;
while(actual!=NULL){
if(strcmp(actual
->telefono
,busqueda
->telefono
)==0){ printf("+Nombre: %s\n", actual
->nombre
); return;
}
actual = actual->siguiente;
}
}
char mostrar_menu()
{
char opcion[3];
printf("1. Agregar contacto\n"); printf("2. Buscar contacto por telefono\n"); return opcion[0];
}
int main()
{
char opcion='0';
while(opcion!='3'){
opcion = mostrar_menu();
if(opcion=='1')
agregar_contacto();
else if(opcion=='2')
buscar_contacto_tlfn();
}
return 0;
}
Saludos!