Is this a correct way for NULL pointer assignment?
int i=0;
char *q=(char*)i;
Answer: B
Correct answer: No
This does not produce a null pointer reliably. The rule requires a null pointer constant - a constant expression evaluating to zero - and i is a variable, so what is converted is a run-time integer value. The compiler is obliged to reinterpret it as an address rather than substitute the machine’s null representation, which need not be all-zero bits.
Please log in or register to report this question.