[AYUDA] Error con codigo

Iniciado por VintageChanel, 30 Enero 2015, 01:55 AM

0 Miembros y 1 Visitante están viendo este tema.

VintageChanel

Hola tengo que hacer un programa donde yo inserte un dato y su prioridad y que se ordene en una cola segun la prioridad.
El CodeBlocks me esta tirando un error y no me doy cuenta que esta mal, ojala puedan ayudarme, aca esta el codigo:
ColaInt *CrearColaInt()
{
   ColaInt *nueva = (CrearColaInt *)malloc(sizeof(ColaInt));

   if(nueva != NULL)
   {
       nueva->pri = NULL;
   }

   return nueva;
}


Error:
In function 'CrearColaInt':
expected expression before ')' token

En la linea 3

Gracias por su ayuda
Take Risks

sabeeee

Cita de: VintageChanel en 30 Enero 2015, 01:55 AM
Hola tengo que hacer un programa donde yo inserte un dato y su prioridad y que se ordene en una cola segun la prioridad.
El CodeBlocks me esta tirando un error y no me doy cuenta que esta mal, ojala puedan ayudarme, aca esta el codigo:
ColaInt *CrearColaInt()
{
   ColaInt *nueva = (CrearColaInt *)malloc(sizeof(ColaInt));

   if(nueva != NULL)
   {
       nueva->pri = NULL;
   }

   return nueva;
}


Error:
In function 'CrearColaInt':
expected expression before ')' token

En la linea 3

Gracias por su ayuda

creo que te falto el ';'
"Vengándose, uno iguala a su enemigo; perdonando, uno se muestra superior a él."
Francis Bacon

vangodp

no tengo mucha experiencia con memoria dinamica, pero se que malloc devuelve un puntero a void, si vas a reservar memoria para lo que sea del tipo ColaInt, no entiendo por que el cast lo haces a CrearColaInt si el tipo del puntero es ColaInt.
Para que entiendas esto es lo que deberia pasar:
void puntero = malloc(sizeof(ColaInt));
ColaInt *nueva = (ColaInt*)puntero;

...Sin embargo pasa:
ColaInt *nueva = (CrearColaInt *)puntero;

¿¿que pinta CrearColaInt ahí si el puntero es ColaInt?? :huh:
Creo que el correcto seria: ColaInt *nueva = (ColaInt *)malloc(sizeof(ColaInt));  :huh: