Foros del Web » Programación para mayores de 30 ;) » C/C++ »

problemas con malloc

Estas en el tema de problemas con malloc en el foro de C/C++ en Foros del Web. Hola Estoy tratando de hacer una lista enlazada en C, basada en la siguiente estructura: Código: struct Lista{ struct ElemLista *primero; int numElem; } Para ...
  #1 (permalink)  
Antiguo 01/05/2007, 01:44
 
Fecha de Ingreso: noviembre-2003
Ubicación: Valencia
Mensajes: 131
Antigüedad: 21 años
Puntos: 1
problemas con malloc

Hola

Estoy tratando de hacer una lista enlazada en C, basada en la siguiente estructura:
Código:
struct Lista{
   struct ElemLista *primero;
   int numElem;
}
Para crear la lista debo utilizar la siguiente funcion:
struct Lista *Crear( void );

Lo que he hecho es lo siguiente:
Código:
struct Lista *Crear( void ){
	struct Lista *l;
	l = malloc( sizeof(struct Lista) );
	printf("Lista creada\n");
	l->primero = NULL;
	l->numElem = 2;
	return l;
}
Pero el compilador me dice: "llamada implícita de la funcion interna malloc incompatible, o algo por el estilo".

Alguien me podría decir cual es el problema, porque llevo varias horas intentando averiguarlo y no consigo encontrar nada.

Agradecería cualquier ayuda.
Saludos
  #2 (permalink)  
Antiguo 01/05/2007, 03:16
Avatar de cris_maco  
Fecha de Ingreso: abril-2007
Ubicación: Salamanca
Mensajes: 254
Antigüedad: 17 años, 7 meses
Puntos: 0
Re: problemas con malloc

tienes que decirle como es el puntero que devuelve malloc

l=(Lista *)malloc(sizeof(struct Lista));
  #3 (permalink)  
Antiguo 01/05/2007, 04:03
 
Fecha de Ingreso: noviembre-2003
Ubicación: Valencia
Mensajes: 131
Antigüedad: 21 años
Puntos: 1
Re: problemas con malloc

Gracias por contestarme

Lo he probado y nada, me sigue dando el mismo error, el error es exactamente en siguiente:

"declaración implícita incompatible de la función interna malloc"

Alguna idea?
  #4 (permalink)  
Antiguo 01/05/2007, 07:07
Avatar de TolaWare
Colaborador
 
Fecha de Ingreso: julio-2005
Mensajes: 4.352
Antigüedad: 19 años, 4 meses
Puntos: 24
Re: problemas con malloc

a) Verificá que hayas importado las librerías necesarias:
Código:
 #include <stdio.h>
#include <malloc.h>
b) A la definición de la estructura lista le falta el ; al final:
Código:
struct Lista {
    struct ElemLista *primero;
    int numElem;
}; 
c) La llamada a malloc debería ser así
Código:
l =(struct Lista *) malloc( sizeof(struct Lista) );
  #5 (permalink)  
Antiguo 01/05/2007, 08:40
Avatar de Instru  
Fecha de Ingreso: noviembre-2002
Ubicación: Mexico
Mensajes: 2.751
Antigüedad: 22 años
Puntos: 52
Re: problemas con malloc

Tambien hay otro pequeño error(que no estoy seguro que sea error) que al parecer nadie noto:

Cita:
struct Lista {
struct ElemLista *primero;
int numElem;
};
Si esto se trata de una lista enlazada, entonces que es:
struct ElemLista *primero;

es un puntero a otra estructura???
o lo que querias hacer era

struct Lista *primero;

Para apuntar al siguiente termino.

Es mas bien una duda con tu codigo.

Saludos
  #6 (permalink)  
Antiguo 01/05/2007, 10:40
 
Fecha de Ingreso: noviembre-2003
Ubicación: Valencia
Mensajes: 131
Antigüedad: 21 años
Puntos: 1
Re: problemas con malloc

Si, es un puntero a otra estructura que representa a un nodo de la lista.

Y gracias TolaWare, era que no ponía: #include <malloc.h>, ya se ha resuelto.

GRACIAS
  #7 (permalink)  
Antiguo 01/05/2007, 17:53
Avatar de Instru  
Fecha de Ingreso: noviembre-2002
Ubicación: Mexico
Mensajes: 2.751
Antigüedad: 22 años
Puntos: 52
Re: problemas con malloc

Se supone que malloc esta implícitamente incluido al incluir stdlib.h

Saludos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:01.