C | Input and Output | Question 8
Which of the following is true
(A) gets() doesn’t do any array bound testing and should not be used.
(B) fgets() should be used in place of gets() only for files, otherwise gets() is fine
(C) gets() cannot read strings with spaces
(D) None of the above
Explanation: Use of gets() generates the risk of an overflow of the allocated buffer. This happens because the function gets(), doesn’t know the size of the buffer, and continues reading until it finds a newline “\n” or encounters EOF, and so it may overflow the bounds of the buffer it was given.