It's been there since the beginning, along with extern and static. You just don't tend to actually write it because it's the default inside functions and it doesn't make sense outside of them.
Is this different between C and C++? In C++ you absolutely cannot assign a void* to an int* without casting it. You can always do the reverse: a void* can be assigned any type of pointer.
I mean… yes you do, but not really. There are use cases for both. Not everything is a class and not every API you call is even going to work with that buffer you pass in unless the API can free() it. See posix for example.
Anyways, that wasn’t the question I asked and is not even relevant to the question I asked.
49
u/PR8-E 2d ago
int* x = (int*) malloc(sizeof(int)); Since malloc returns void pointer you should parse it to type you use.