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

Discussion

In function free(p), p is a:

  • A.int
  • B.Pointer returned by malloc()
  • C.Pointer returned by calloc()
  • D.Both b & c

Answer: D

Correct answer: Both b & c

free accepts the pointer returned by malloc, by calloc or by realloc - one deallocation function serves all three, because all three draw on the same allocator.

What it will not accept is anything else: an address part-way into a block, an address of an automatic or static object, or a pointer already freed. Each of those is undefined behaviour, and a double free in particular corrupts the allocator's own bookkeeping.

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

Post your comment

Please log in or register to post a comment.