これはとても奇妙です。最初に宣言/初期化する 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[]
I'm のように埋められませんstrncat()
t_str
。これが起こっている理由は何ですか?