使用 calloc 创建的以空字符结尾的字符串?

Null-terminated strings created with calloc?

我想使用 calloc 为字符串分配内存,我知道 calloc 将整个分配的内存填充为 0,但我也发现它们在某些情况下与 \0 不同。 整个讨论对于新手(比如我自己)来说有点混乱,所以我想知道是否有人可以给我最终答案,如果我使用 alloc 来初始化一个字符串,我是否必须手动将最后一个字符设置为“\0”还是不?

整数值0calloc填满分配的内存之间没有区别,文字字符'[=12=]'与整数值[=10=相同].

因此,如果您将最多 n-1 个字符写入分配给 callocn 个字符的内存块,您将始终拥有一个有效的以 0 结尾的字符串。