>Dosen't that depend on the compiler?
No, it is because C++ is more strongly typed than C so implicit conversion of void pointers is disallowed. Any conforming C compiler will allow this, and any conforming C++ compiler will not.

-Prelude