おそらく私はググるにはあまりにもダンプしすぎていますが、char 配列はリテラルの初期化 ( char x[]="asdf";
) によって null で終了するだけだといつも思っていましたが、そうではないことがわかったときは少し驚きました。
int main()
{
char x[2];
printf("%d", x[2]);
return 0;
}
出力: 0
size=2*char として宣言された配列は、実際には 2 文字のサイズになるべきではありませんか? それとも、ここで何か間違ったことをしていますか? char 配列を文字列としてではなく単純な char 配列として使用することは珍しくありませんか?