Machine-translated by Google. Questions are authored in English.
Top

Discussion

Is this a correct way for NULL pointer assignment?

int i=0;
char *q=(char*)i;

 

  • A.Yes
  • B.No

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.

No comment is present. Be the first to comment.
Loading…

Post your comment

Please log in or register to post a comment.