• Sábado 14 de Diciembre de 2024, 23:40

Autor Tema:  error en la funcion MALLOC  (Leído 1077 veces)

antotejas

  • Nuevo Miembro
  • *
  • Mensajes: 9
    • Ver Perfil
error en la funcion MALLOC
« en: Domingo 15 de Febrero de 2009, 19:36 »
0
Hola,

Estoy haciendo un programa en el que tengo dos listas de arrays para almacenar en una numeros de cuenta,en otra nombres de personas y asi tendre que seguir haciendo mas listas. Lo hago de esta forma para poder comparar los datos y que no se me repitan en la lista.

La cuestion es que la lista de numeros de cuenta me funciona sin problema,pero la lista de nombres de persona me da fallo desde el pimer momento,adjunto parte del codigo:

        char *cuentas[6000];
   char *names[6000];
   char lineac[SIZEA];//will contain the line correspondent to an account number
   char linean[SIZEN];//will contain the line correspondent to a sender name
   char linead[SIZED];//will contain the line correspondent to a date
   char lineau[500];
   int numero_cuentas=0;
   int numero_nombres=0;

//Aqui miro si no existe el numero de cuenta en la lista de numeros de cuenta,si no existe lo introduzco
  if (!existec(lineac,cuentas,numero_cuentas))
      {
         cuentas[numero_cuentas] = (char*)malloc(41);
         strcpy(cuentas[numero_cuentas],lineac);
         numero_cuentas++;

//Hago lo mismo para el nombre de la persona

   if (!existec(linean,nombres,numero_nombres))
      {
         nombres[numero_nombres] = (char*)malloc(90);
         strcpy(names[names_number],linean);
         names_number++;
      }

El problema es que el mallox para la lista de nombres siempre me da NULL,sin embargo,si en vez de la lista de nombres le pongo la de numeros de cuenta me devuelve un puntero,osea que creo que no es por falta de espacio.

Alguna idea??

Gracias!!

betopin

  • Miembro activo
  • **
  • Mensajes: 93
  • Nacionalidad: co
    • Ver Perfil
    • http://www.programasenc.blogspot.com
Re: error en la funcion MALLOC
« Respuesta #1 en: Domingo 15 de Febrero de 2009, 21:23 »
0
Como esta definido nombres???....es un puntero tambien???....no lo veo en tu codigo. Solo veo a names

m0skit0

  • Miembro de PLATA
  • *****
  • Mensajes: 2337
  • Nacionalidad: ma
    • Ver Perfil
    • http://fr33kk0mpu73r.blogspot.com/
Re: error en la funcion MALLOC
« Respuesta #2 en: Domingo 15 de Febrero de 2009, 22:19 »
0
Yo creo que primero tienes un lío en los nombres de variables. Por ejemplo:

Código: C
  1. nombres[numero_nombres] = (char*)malloc(90);
  2. strcpy(names[names_number],linean);
  3. names_number++;
  4.  
pienso que debería ser:

Código: C
  1. nombres[numero_nombres] = (char*)malloc(90);
  2. strcpy(nombres[numero_nombres],linean);
  3. numero_nombres++;
  4.  

Por favor, al postear código utiliza las etiquetas y procura poner cachos de código ejecutables (sin incoherencias), así podremos depurarlos contigo mucho mejor  ;)

Salud

antotejas

  • Nuevo Miembro
  • *
  • Mensajes: 9
    • Ver Perfil
Re: error en la funcion MALLOC
« Respuesta #3 en: Lunes 16 de Febrero de 2009, 01:03 »
0
Ya lo solucione todo,muchas gracias por vuestra ayuda!