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

Discussion

calloc initialises memory with all bits set to zero.

  • A.true
  • B.false
  • C.Depends on the compiler
  • D.Depends on the standard

Answer: A

Correct answer: true

calloc sets every bit of the allocated block to zero, and the standard requires it. That is the guarantee, not a compiler-dependent convenience.

One subtlety is worth knowing: all-zero bits reliably give integer zero, but the standard does not promise that they give a null pointer or a floating-point zero - those hold on essentially every current implementation but are not guaranteed. Code depending on a zeroed block containing valid null pointers is portable in practice rather than in principle.

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

Post your comment

Please log in or register to post a comment.