«Очистить память» в данном случае означает заполнить ее физическим нулевым битовым шаблоном. Обратите внимание, что с формальной точки зрения этот тип первичной инициализации памяти гарантированно работает только с целочисленными типами. То есть объекты целочисленных типов гарантированно получают начальные значения нуля. Будут ли какие-либо другие типы осмысленно инициализированы этим, определяется реализацией. (Требуются дополнительные стандарты, которые выходят за пределы стандарта C, чтобы дать дополнительные гарантии. POSIX, IEEE 754 и т. Д.)
Имеет ли смысл использовать calloc
для "предотвращения сбоев", как описано в цитате, на самом деле, вопрос другой. Я бы сказал, что он действительно может улучшить стабильность кода, написанного ленивыми программистами, в том смысле, что он сворачивает все возможные непредвиденные поведения, вызванные различными значениями мусора, в одно конкретное неожиданное поведение, инициируемое значениями с нулем.