• Jueves 14 de Noviembre de 2024, 04:38

Autor Tema:  Re: AGENDA  (Leído 1824 veces)

Anna

  • Nuevo Miembro
  • *
  • Mensajes: 12
    • Ver Perfil
Re: AGENDA
« en: Jueves 9 de Octubre de 2003, 21:11 »
0
Hola, tengo una agenda pero no va. Me da error de en:
void inicializar(agenda *c)
{
   int x;
   for(x=0;x<FIN;x++)
      c
  • .id=0;

}

Y otros errores (creo que es culpa del malloc) en:
void introducir(agenda*c)
{
   int i=0;
   char nombre[20];
   char apellidos[30];
   char telefono[12];
   char resp='s';
   while(tolower(resp)=='s')
   {
      do
      {
         printf("Introducir datosn");
         flushall();
         printf("Introduce nombre:n");
         flushall();
         gets(nombre);
         c->nombre=*(char*)malloc(strlen(nombre+1)*sizeof(char));
         strcpy(c->nombre,nombre);
         flushall();
         printf("Introduce apellidos:n");
         flushall();
         gets(apellidos);
         c->apellidos=(char*)malloc(strlen(apellidos+1)*sizeof(char));
         strcpy(c->apellidos,apellidos);
         flushall();
         printf("Introduce Telefono:n");
         flushall();
         gets(telefono);
         c->tel=(char*)malloc(strlen(telefono+1)*sizeof(char));
         strcpy(c->tel,telefono);
         flushall();
         printf("¿Datos correctosn?s/n");
         resp=getchar();
      }
      while (tolower(resp)!='s');
      i++;
      printf("Desea introducir más personasn (s/n)");
      resp=getchar();
      flushall();
   }
}

Al ejecutarlo, da error de no poder written.
Dejo todo el código, haber si alguien me puede echar una mano.
:question:
El mensaje contiene 1 archivo adjunto. Debes ingresar o registrarte para poder verlo y descargarlo.

JuanK

  • Miembro de ORO
  • ******
  • Mensajes: 5393
  • Nacionalidad: co
    • Ver Perfil
    • http://juank.io
Re: AGENDA
« Respuesta #1 en: Martes 14 de Octubre de 2003, 15:24 »
0
quisiera ayudarte pero ultimament no dispongo de mucho tiempo, asi que seria de gran ayuda si anotas que errores te salen.
[size=109]Juan Carlos Ruiz Pacheco
[/size]
Microsoft Technical Evangelist
@JuanKRuiz
http://juank.io

Anna

  • Nuevo Miembro
  • *
  • Mensajes: 12
    • Ver Perfil
Re: AGENDA
« Respuesta #2 en: Miércoles 15 de Octubre de 2003, 20:40 »
0
Gracias por ayudarme.
Al ejecutarlo sale el mensaje:
"Agenda_si provocó un error en AGENDA_SI.EXE.
Agenda_si se cerrará.
Si continuán los problemas, pruebe de nuevo después de reiniciar el equipo."

Si elijo depurar sale el mensaje:
"Unhandled exception in agenda_si.exe: 0xC0000005: Access Violation"
y señala a:
void inicializar(agenda *c)
{
   int x;
   for(x=0;x<FIN;x++)
      c
  • .nombre=0; //A esta línea.

}

Además da los siguientes warnings. No sé si tendrá que ver con el error:
warning C4047: '==' : 'char *' differs in levels of indirection from 'int       if(c
  • .nombre==inicial)// Señala esta línea.

warning C4700: local variable 'c' used without having been initialized
warning C4700: local variable 'b' used without having been initialized
warning C4700: local variable 'a' used without having been initialized
warning C4715: 'nuevaagenda' : not all control paths return a value
agenda *nuevaagenda()
{
  agenda *q = (agenda *)malloc(sizeof(agenda));
  if (!q)
  return q;
}
warning C4700: local variable 'x' used without having been initialized
warning C4700: local variable 'medio' used without having been initialized
warning C4700: local variable 'aux' used without having been initialized

Como ves, muchos son iguales. Los errores de "no inicializados" ya los entiendo. El resto no sé exactamente a que se refiere.:gracias:

JuanK

  • Miembro de ORO
  • ******
  • Mensajes: 5393
  • Nacionalidad: co
    • Ver Perfil
    • http://juank.io
Re: AGENDA
« Respuesta #3 en: Miércoles 15 de Octubre de 2003, 20:58 »
0
bueno hay bastantes errores, pero veremos de a uno a la vez...
tu haces:
 
Código: Text
  1.  
  2.  inicializar(&c);
  3.  
  4.  
per inicializar recibe:
 
Código: Text
  1.  
  2. //STRUCT
  3. struct agenda
  4. {
  5.  int id;
  6.  char *nombre;
  7.  char *apellidos;
  8.  char *tel;
  9. };
  10. typedef struct agenda agenda;
  11.  
  12.  
  13. //DECLARACIONES DE FUNCIONES
  14. int menu(void);
  15. void inicializar(agenda *c);
  16. void introducir(agenda*c);
  17. int consultar(agenda*c);
  18. void listado_quicksort(agenda*c,int a, int b);
  19. void eliminar(agenda*c);
  20. agenda *nuevaagenda();
  21.  
  22.  

Asi que es incorrecto  porque agenda es una struct  lo cual nos dice que de por si es un apuntador a una estructura de datos... hacer esto:
 
Código: Text
  1.  
  2.  inicializar(&c);
  3.  
  4.  

Esta mal porque realmente estas pasando un parametro agenda**c.

lo correcto es:
 
Código: Text
  1.  
  2.  inicializar(c);
  3.  
  4.  

Asi tienes varios errores, verificalos y trata de resolver los demas, si continuan tus ñproblemas no dudes en consultar, se nota que has tratado de hacer un buen trabajo.:lightsabre:
[size=109]Juan Carlos Ruiz Pacheco
[/size]
Microsoft Technical Evangelist
@JuanKRuiz
http://juank.io

Anna

  • Nuevo Miembro
  • *
  • Mensajes: 12
    • Ver Perfil
AGENDA
« Respuesta #4 en: Jueves 16 de Octubre de 2003, 20:36 »
0
Gracias por la ayuda, seguiré tus consejos.
 Siempre me pasa igual con los punteros, nunca me aclaro.:gracias: