Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: fafafa01 en 18 Diciembre 2016, 00:05 am



Título: Puntero a función.
Publicado por: fafafa01 en 18 Diciembre 2016, 00:05 am
Buenas, tengo una duda con este código que creo que esta mal:
(https://k60.kn3.net/5/0/5/3/2/3/65A.png)

No tendría que ser:

Código
  1. (int (*)(viod *, void *))=(numeric ? numcmp:strcmp));


Título: Re: Puntero a función.
Publicado por: MAFUS en 18 Diciembre 2016, 01:10 am
No, está bien tal y como muestra el código.
Código
  1. (int (*) (void *, void *))
es un cast sobre la función devuelta por
Código
  1. (numeric ? numcmp : strcmp)


Título: Re: Puntero a función.
Publicado por: fafafa01 en 18 Diciembre 2016, 02:04 am
haa, el cast seria porque las funciones tienen  como argumentos punteros a char y el puntero a la función espera punteros a void ¿no?. es decir ¿los argumentos de las funciones que son punteros a char se convierten a punteros a void?¿cuando se vuelven a convertir en punteros char?


Título: Re: Puntero a función.
Publicado por: ivancea96 en 19 Diciembre 2016, 09:26 am
haa, el cast seria porque las funciones tienen  como argumentos punteros a char y el puntero a la función espera punteros a void ¿no?. es decir ¿los argumentos de las funciones que son punteros a char se convierten a punteros a void?¿cuando se vuelven a convertir en punteros char?

La función pide como parámetro una función con parámetros void*, y eso es lo que le das.

Si alguien transforma los void* a char*, ese es la función qsort internamente.