这是原始代码
int main(void)
{
char hello[] = "hello ", world[] = "world!\n", *s;
s = strcat(hello,world);
printf(s);
return 0;
}
char hello[] = "hello ", world[] = "world!\n", *s;
strcat(hello,world);
printf(hello);
我把它改成了下面的内容
我很肯定我修好了这段代码,但我的导师给我留了个电话。 就像我告诉他它甚至没有使用指针,所以这很好。他说他不认为这是正确的
我错了吗? 就像我跑了50次它仍然有效。答案 0 :(得分:1)
你的导师是对的。 hello
只能容纳6个字符(加上一个空终止符)。因此,尝试将strcat
内容写入结尾会导致未定义的行为。