In C, pointers can be cast to a void*, which needs an explicit cast in C++. The following is illegal in C++, but legal in C:
void*
void* ptr; int* intptr = ptr;
Adding an explicit cast makes this work, but can cause further issues.