Guao yo no había tocado este tema en C , te dejo esto para que lo mires: http://publications.gbdirect.co.uk/c_book/chapter5/function_pointers.html , en C++ hay problemas con los cast de tipos a (void*)() , y es un coñazo, os dejo la salida y confirmo que funciona, por cierto que modifique el código en la posición del array no importa , pues el valor de retorno son los 4 bytes esos, lo que pasa es que les hace un cast a int.
Código [Seleccionar]
Valor retornado por f antes de mutar ... f() = 1
Valor retornado por f despues de mutar ... f() = 8
Process returned 0 (0x0) execution time : 0.009 s
Press any key to continue.