Why would casting a vararg function parameter matter?
c++, casting, variadic-functions
Solution
Well, `NULL` is an integral constant in C++, whereas `(void *)NULL` is very definitely a pointer type.
So they could conceivably have different sizes when inserted into the var-arg list. So this would certainly make a difference if, say, there's another parameter following it. And if there isn't, you may end up reading half-garbage from inside the var-arg function.
Problem
Recently I've encountered a problem with a function that accepts variable number of arguments and expects the last one to be a null pointer. I don't have access to its implementation. Casting that last parameter to a `void*` worked, but passing in `NULL` (`nullptr` not available) directly wouldn't: ``` foo(x,y,(void*)NULL); //okay foo(x,y,NULL); //crash ``` IMO this shouldn't make a difference, but then again, I've been wrong before. Can you think of any reason the cast would make a difference? or is this simply an accident (some desync or faulty build or smth. along those lines) Sorry in advance that I can't provide more details.