我读过 calloc (malloc+init) 有时无法用零字节初始化数组(但仍会返回指向 malloc 数组的指针)。但在文档中它没有指定它将返回 NULL,有没有办法确保数组被初始化为零(然后遍历数组更好),如果不是, calloc 相对于 malloc 的优势是什么?
如果calloc()
返回一个非空指针,内存块将被归零。
除非你有一个有问题的图书馆。在这种情况下,您应该谨慎行事。也许可以考虑获得一个新的工具链,修复错误(大多数库都带有源代码)或编写您自己的calloc()
on top版本malloc()
或其他东西。
我认为这calloc()
很有可能是坚如磐石的,除非你有一个绝对古老的、准标准的编译器,或者一些编译器的目标是非常非常小的系统,他们觉得需要偷工减料(我认为他们将有记录)。