gpt4 book ai didi

c - 在数组值中显示额外数据

转载 作者:太空宇宙 更新时间:2023-11-04 06:38:33 27 4
gpt4 key购买 nike

我在carbide c/c++中使用这部分c代码

   char c1[]={0x01};
char c2[]={0x02};
char* c [] = {c1,c2};

当我检查 c[0],c[1].. 的值时,我在 Debug模式下看到两个这样的值

c[0] = \x01\x01 & (x) = *[0] = \x01  
c[1] = \x02\x01\x01 & (x) = *[1] = \x02

如果我这样计算长度

int cclen2 = strlen(c[0]); 

获取 cclen2 = 2;但我应该将值设为 1。

最佳答案

c1c2 没有空终止符,strlen() 需要一个空终止符(以及许多其他 C 字符串处理函数,例如 printf("%s", c1))。只有在使用字符串文字初始化 char[] 时才会隐式添加空终止符。

更改为:

char c1[] = { 0x01, 0x00 };
char c2[] = { 0x02, 0x00 };

或:

char c1[] = "\x01";
char c2[] = "\x02";

关于c - 在数组值中显示额外数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11860049/

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