• Sábado 14 de Diciembre de 2024, 12:10

Autor Tema:  [linker Error]  (Leído 1262 veces)

manguiti

  • Nuevo Miembro
  • *
  • Mensajes: 5
    • Ver Perfil
[linker Error]
« en: Viernes 11 de Mayo de 2007, 12:03 »
0
Hola,en el siguiente codigo me da este error al llamar a dos funciones, a ver si podeis echarme una mano y a ver a que se debe...
gracias de antemano...

Uno de los fallos era referente al nombre que le habia puesto ala primera funcion (detecta_errores) al declarla y luego abajo le puse (detecta_errores_codigo)....jijijij....siento preguntar este tipo de gilipolleces....a ver si me podeis ayudar con el otro error...


Código: Text
  1.  
  2. /*Programa que gestiona las opciones de un cajero automatico*/
  3.  
  4. #include <stdlib.h>
  5. #include <stdio.h>
  6. #include <strings.h>
  7.  
  8.  
  9.  
  10. /*Declaracion de estructuras*/
  11.  
  12. struct ficha{
  13.     int codigo;
  14.     char nombre[80];
  15.     char pin[4];
  16.     float saldo;
  17. };ficha cliente[15];
  18.  
  19. /*Declaracion de Funciones*/
  20.  
  21. void detecta_errores(int dato);
  22. void detecta_errores2(struct ficha,char pin);
  23.  
  24. /*Declaracion de variables globales*/
  25.  
  26. int codigo;
  27. char pin[4];
  28.  
  29.     
  30.  
  31.  
  32. int main(){
  33.     
  34.     int i;
  35.     
  36.     
  37.     /*Inicializacion del saldo y los codigos de cliente*/
  38.     for(i=1;i<5;i++){
  39.         cliente[i].codigo=i+1;
  40.         cliente[i].saldo=700;
  41.         printf("cliente: %d, codigo: %d saldo: %.2f\n",i+1,cliente[i].codigo,cliente[i].saldo);
  42.     }
  43.     /*inicializacion de los nombres y el pin*/
  44.     strcpy(cliente[1].nombre,"Antonio Cortina");
  45.     strcpy(cliente[1].pin,"1111");
  46.     strcpy(cliente[2].nombre,"Manolo Lama");
  47.     strcpy(cliente[2].pin,"2222");
  48.     strcpy(cliente[3].nombre,"Paco Gonzalez");
  49.     strcpy(cliente[3].pin,"3333");
  50.     strcpy(cliente[4].nombre,"Lydia Candon");
  51.     strcpy(cliente[4].pin,"4444");
  52.     strcpy(cliente[5].nombre,"Emilio Aragon");
  53.     strcpy(cliente[5].pin,"5555");
  54.         
  55.  
  56.     printf(" ---------------\n");
  57.     printf("| BANCO TIMADOR |\n");
  58.     printf(" ---------------\n\n");
  59.     
  60.     /*Introduccion del codigo de cliente y el pin*/    
  61.     printf("\nIntroduzca su codigo de cliente: ");
  62.     scanf(" %d",&codigo);
  63.     detecta_errores(codigo);
  64.     
  65.     printf("\nIntroduzca su pin: ");
  66.     scanf(" %s",pin);
  67.     detecta_errores2(cliente[codigo],*pin);
  68.     
  69.     
  70.     
  71.  
  72.  
  73.  
  74.  
  75.  
  76.     system("PAUSE");
  77.     return 0;
  78.     
  79. }
  80.  
  81.  
  82. /*Funcion que detecta los distintos tipos de errores al introducir los datos*/
  83. void detecta_errores_codigo(int dato){
  84.  
  85.     /*Errores para el codigo de cliente*/
  86.     while(dato==codigo){
  87.          if((dato<=0)||(dato>5)){
  88.             printf("El codigo introducido no pertenece a ninguno de nuestros clientes, gracias..\n");
  89.             printf("Introduzca su codigo de cliente: ");
  90.             scanf("%d",&codigo);
  91.             }
  92.             else{
  93.             break;
  94.             }
  95.     }        
  96. }
  97.  
  98. /*Funcion que detecta los errores al introducir el codigo pin*/
  99.  
  100. void detecta_errores2(struct ficha cl,char pin[4]){
  101.     
  102.     strcmp(cliente[codigo].pin,pin);                
  103. }    
  104.  
  105.  


Los errores son estos:
  [Linker error] undefined reference to `detecta_errores(int)'
  [Linker error] undefined reference to `detecta_errores2(ficha, char)'

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: [linker Error]
« Respuesta #1 en: Viernes 11 de Mayo de 2007, 12:10 »
0
Declaras al principio y llamas a detecta_errores pero tenes definida detecta_errores_codigo.

La misma historia para la otra la tenes declarada como:
void detecta_errores2(struct ficha,char pin);

Y la tenes definida como:
void detecta_errores2(struct ficha cl,char pin[4])

Si lo queres hacer es pasarle un caracter usa char pin y si queres pasarle una cadena (que es lo que parece al usar strcmp) usar char *.

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.

manguiti

  • Nuevo Miembro
  • *
  • Mensajes: 5
    • Ver Perfil
Re: [linker Error]
« Respuesta #2 en: Viernes 11 de Mayo de 2007, 12:23 »
0
Ok, muchas gracias....toy empezando y m lio un poco al declarar y llamar las funciones asi como con los punteros....jejejeje

1 saludo!!

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: [linker Error]
« Respuesta #3 en: Viernes 11 de Mayo de 2007, 12:29 »
0
Cita de: "manguiti"
Ok, muchas gracias....toy empezando y m lio un poco al declarar y llamar las funciones asi como con los punteros....jejejeje

1 saludo!!
De nadas  B)

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.