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

Kra*_*ken 7 c malloc string-length

我已经使用C很长一段时间了,我有这个小问题,我想查询.

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

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

sha*_*oth 8

如果你需要那个块来存储以null结尾的字符串,那么你需要明确地要求malloc()分配一个额外的字节来存储空终止符,malloc()否则你不会这样做.如果您打算将字符串长度存储在其他位置,因此您不需要空终止符,您可以在不分配额外字节的情况下离开.当然,你是否需要对字符串进行空终止,你不应该忘记C库字符串处理函数只能使用以空字符结尾的字符串.