gpt4 book ai didi

c - 使用 malloc 分配时是否包含空字符

转载 作者:太空狗 更新时间:2023-10-29 17:06:40 25 4
gpt4 key购买 nike

我使用 C 已经有一段时间了,但我有一个小问题想要查询。

假设我想创建一个最多可存储 1000 个字符的字符数组。现在,当我为此使用 malloc 时,我是将数组的大小指定为 1001 个字符 [1000 个字符 + null] 还是仅指定 1000 个?

另外,假设我遇到了这个问题,那么我怎么能自己找到这个解决方案的答案,也许是通过使用一些测试程序。我知道字符串的大小是在没有空字符的情况下计算的,但是当我为其分配内存时,我是否也考虑了空字符?

最佳答案

如果您需要该 block 来存储空终止字符串,那么是的,您需要明确要求 malloc() 分配一个额外的字节来存储空终止符,malloc() 否则不会为你做。如果您打算将字符串长度存储在其他地方,那么您不需要空终止符,您可以在不分配额外字节的情况下离开。当然,是否需要对字符串进行空终止取决于您,只是不要忘记 C 库字符串处理函数仅适用于以空终止的字符串。

关于c - 使用 malloc 分配时是否包含空字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17522327/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com