这太奇怪了。似乎取决于我首先声明/初始化的 char 数组,当我在 C. 代码中的另一个数组上执行 strncat() 时,会覆盖一个空白数组:
char t_str[]="";
char ran_str[]="";
... inbuf ="8889 ";
while (inbuf[pos]!=' ')
{
strncat(t_str, &inbuf[pos],1);
printf("t_str so far: %s\n", t_str);
printf("ran_str so far: %s\n", ran_str);
pos++;
}
输出:
t_str so far: 8
ran_str so far:
t_str so far: 88
ran_str so far: 8
t_str so far: 888
ran_str so far: 88
t_str so far: 8889
ran_str so far: 889
ran_str
如果我之前初始化t_str
,那么 ran_str[]
不会像我一样被填满strncat()
t_str
。为什么会发生这种情况?