Te damos la bienvenida a nuestro espacio, en este lugar vas a encontrar la solucíon a lo que andabas buscando.
Solución:
Define un tipo de puntero a función. Vuelven las funciones void, y la lista de argumentos no está especificada porque la pregunta está (actualmente, pero posiblemente erróneamente) etiquetada como C; si estuviera etiquetada como C++, entonces la función no aceptaría ningún argumento. Para convertirlo en una función que no tome argumentos (en C), usaría:
typedef void (*MCB)(void);
Esta es una de las áreas en las que hay una diferencia significativa entre C, que todavía no requiere que todas las funciones sean prototipadas antes de ser definidas o utilizadas, y C++, que sí lo requiere.
Introduce un tipo de puntero de función, que apunta a una función que no devuelve nada (void), sin tomar ningún parámetro y nombrando el nuevo tipo MCB.
El typedef define MCB
como el tipo de un puntero a una función que no acepta argumentos y devuelve void
.
Tenga en cuenta que MCB Modes::m_process = NULL;
es C++, no C. Además, en C, el typedef realmente debería ser typedef void (*MCB)(void);
.
No estoy seguro de lo que quieres decir con “la memoria fue liberada”. Usted tiene un static puntero a una función; una función no se puede liberar. A lo sumo, su puntero se ha reiniciado en alguna parte. Simplemente depure con un reloj de memoria activado m_process
.
Valoraciones y reseñas
Te invitamos a añadir valor a nuestro contenido informacional colaborando tu experiencia en las aclaraciones.