繁体   English   中英

字符数组和字符串长度

[英]char array and string length

我定义了字符串:

char ch[300];

当我得到字符串长度

strlen(ch);

我的长度始终等于323 为什么我有这个魔术数字?

因为函数strlen正在寻找第一个0x00字节并超出数组,这会发生吗?

让strlen走出数组是否安全?

这是否意味着如果我想使用strlen函数,必须将最后一个字节设置为ch[300]=0

strlen搜索首次出现0x00 如果找不到,它将继续计数。 这可能非常危险。 如果您尝试获取超出范围的价值,则程序可能会崩溃,或者可能会得到无法预料的结果。 始终确保String以null终止。

因为函数strlen正在寻找第一个0x00字节并超出数组,这会发生吗?

让strlen走出数组是否安全?

没有

这是否意味着如果我想使用strlen函数,必须将最后一个字节设置为ch [300] = 0?

几乎ch[299] = 0; 此外,您应该在初始化缓冲区而不是未初始化缓冲区上调用它。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM