gpt4 book ai didi

c++ - 使用 strcat 附加字符时出现意外行为

转载 作者:行者123 更新时间:2023-11-28 00:25:39 25 4
gpt4 key购买 nike

char buf[256];
char c48 = (char) 48;
char c49 = (char) 49;
char c50 = (char) 50;
char c51 = (char) 51;
char c52 = (char) 52;
char c53 = (char) 53;
strcpy(buf, &c48);
strcat(buf, &c49);
strcat(buf, &c50);
strcat(buf, &c51);
strcat(buf, &c52);
strcat(buf, &c53);
puts(buf);

我希望输出字符串为 012345但是,当我进行计算时,结果是 0 10 210 3210 43210 543210 。我不明白为什么会这样。可能是使用 strcat 方法复制了 buf 吗?对不起这个基本问题。我来自 java 背景。

最佳答案

strcpy(buf, &c48);

第二个参数不是指向以 NUL 结尾的字符串的指针。这一行及其后的所有行都表现出未定义的行为。

关于c++ - 使用 strcat 附加字符时出现意外行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25254483/

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