繁体   English   中英

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

[英]unexpected behavior while appending chars using strcat

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结尾的字符串的指针。 此行及其后的所有行均显示未定义的行为。

暂无
暂无

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

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