Which of the following is/are true
Answer: D
Correct answer: All of the above
All three statements hold. calloc zeroes what it returns while malloc leaves arbitrary data; malloc followed by memset reproduces that effect; and both return void *.
One difference the list does not mention is worth knowing: calloc multiplies its two arguments internally and is required to detect overflow in that product, whereas a hand-written malloc(m * n) can wrap silently and allocate far too little - a well-known source of security bugs.
Please log in or register to report this question.