calloc()和NULL

yon*_*100 5 c null calloc dynamic-memory-allocation

我知道calloc会分配内存并向每个单元写入零,所以我的问题是:使用calloc或malloc与运行向其写入NULL的单元之间有区别吗?calloc的零是否等于NULL?

Car*_*rum 5

不,它们并不总是等效的,但在大多数流行的机器上你会没事的。calloc将全零的位模式写入分配的内存,但空指针值在某些机器上可能不是全位零(甚至仅对于某些机器上的某些类型)。

查看C FAQ 的空指针部分以获取大量信息。