(Ah, the Collatz conjecture.)
Not sure why it's not working, but I don't think cout is the problem. Why are you passing pointers to your Even and Odd functions? sizeof(int) is either smaller then or equal to sizeof(void*).
Actually,i try to understand the concept of pointer.I also try a different version of code which i pass the value without using the pointer.Unfortunately,the answer remain the same.Any thought ?