elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


  Mostrar Temas
Páginas: [1]
1  Programación / Programación C/C++ / Urgente apuntadores en: 3 Agosto 2017, 11:10 am
Hola, soy nuevo en el foro, recurrí porque no encuentro solución a mi problema por más que navegué e intenté por mi mismo y me siento un poco frustrado; les comento, estoy realizando una agenda que por el momento tiene las siguientes funciones: agregar, buscar, eliminar.

Actualmente todo me funciona de maravilla, excepto en eliminar, sólo logro que elimine el primero elemento, a partir del segundo en adelante me marca errores y me saca de la ejecución del programa, les adjunto el código, compilo en Borland.

Código:
int eliminar(){
agenda *temp = primero;
   char pal_clave[100];
   gets(bas); //variable para almacenar la tecla intro
   printf("\n Dame el nombre completo de la persona a borrar: ");
   gets(pal_clave);

   //este ciclo recorre la agenda hasta encontrar el nombre
   do{
   //si la palabra clave a buscar coincide con el nombre
   if(strcmp(pal_clave,temp->nombre) == 0){
     //si es la primera en la lista
   if (temp == primero){
         //si no tiene registro en su campo siguiente
         if(temp->sig== NULL){
             primero = NULL;
     ultimo = NULL;
               free(temp);
     }
            else{
     //si tiene registros en su campo siguiente, este se asigna al primero
             primero=temp->sig;
     primero->ant = NULL;
     }
return true;
     }

     if(temp == ultimo){
         ultimo = temp->ant;
            ultimo -> sig = NULL;
            free(temp);
            return true;
     }
     temp->ant->sig=temp->sig;
     temp->sig->ant = temp->ant;
     //libero espacio en memoria del registro borrado
     free(temp);
     return true;
     }
      //avanza al siguiente en la lista
     temp = temp->sig;
}
   while(temp != NULL);
return false;
}
Páginas: [1]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines