C语言0x00在无符号数组使用中的注意事项

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/qq_19734597/article/details/102601824

C语言0x00在无符号数组使用中,不能使用 strlen() 计算数组长度,否则不准确,0x00 会起到停止符的作用。

例如:

uint8_t str[4] = {0x01,0x00,0x02,0x03};
size_t len = strlen(str);

这里按照常理来说 len 应该等于 4,但是实际上 len 等于 1,原因是\0 在内存中是以0x00来存放的,而数字0 是一个常用的字符。在使用 strlen 的时候,只会统计 0x00 前面的位数,而忽略 0x00 本身和后面的位数。

猜你喜欢

转载自blog.csdn.net/qq_19734597/article/details/102601824
今日推荐