Ejemplo

void reset(int &param){
param = 0;
}

int main(int argc, char* argv[])
{
void (*fncPtr) (int&) = 0;
fncPtr = &reset;

void *primitivePtr = 0;
primitivePtr = (void*) fncPtr;

return 0;
}

Solución
No convierta punteros de función en tipos primitivos.

typedef void (*FPointer)(int&);

void reset(int &param){
param = 0;
}

int main(int argc, char* argv[])
{
FPointer fncPtr = 0;
fncPtr = &reset;

FPointer otherPtr = fncPtr;

return 0;
}