gpt4 book ai didi

c - 为什么 strlen 在没有 '\0' 的情况下工作正常?

转载 作者:行者123 更新时间:2023-11-30 20:50:34 25 4
gpt4 key购买 nike

作为标题,我对在 c 中使用 char* 有一些疑问。例如,如果我写这个

char *a = calloc(5, 5);
a[0] = '1';
a[1] = '1';
a[2] = '1';
a[3] = '1';
a[4] = '1';
printf("a = %s, length = %d", a, strlen(a));

输出为

a = 11111, length = 5

为什么 strlen 没有 '\0' 也能正常工作?有人可以帮我理解吗?

最佳答案

calloc(5, 5) 分配 25 个字节并将其清零。您分配了其中的前五个,但第六个仍然是 '\0'

关于c - 为什么 strlen 在没有 '\0' 的情况下工作正常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43625123/

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