#include <stdio.h>
int main(void)
{
char a[100] = "hi";
strcat(a, a);
strcat(a, a);
printf("%s
", a);
return 0;
}
2. 连续两次造成断裂
原标题:Concatenating string with itself two times give segmentation fault
问题回答
从C语标准中的strcat
下的定义,§7.21.3.1/2
<编码> 如果复制在重复的物体之间发生,则不明确。
我的编篡甚至一次如strcat(a, a);
复制了第一个论点末尾关于 的第二种论点的第一份性质,然后是第二个论点之后的第二次性质,等等,直到它在第二个论点中遇到 为止。
原文:
<><>>>>>
The strcat() and strncat() functions append a copy of the null-terminated
string s2 to the end of the null-terminated string s1, then add a termi-
nating . The string s1 must have sufficient space to hold the
result.
The strncat() function appends not more than n characters from s2, and
then adds a terminating