Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: VintageChanel en 30 Enero 2015, 01:55 am



Título: [AYUDA] Error con codigo
Publicado por: 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:
Código:
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


Título: Re: [AYUDA] Error con codigo
Publicado por: sabeeee en 30 Enero 2015, 01:59 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:
Código:
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 ';'


Título: Re: [AYUDA] Error con codigo
Publicado por: vangodp en 30 Enero 2015, 03:45 am
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: