次の初期化を想定します。
char mystr[4] = "";
C99 標準は、空の文字列に初期化された文字配列が文字配列内のすべての要素を null バイトに初期化することを保証しますか? たとえば、規格は次のことを保証していmystr[2] == '\0'
ますか?
これらの初期化はどうですか:
char myfoo[4] = { '\0' };
char mybar[4] = { 0 };
文字配列の最初の要素を明示的に設定すると、残りの要素が に暗黙的に初期化されることが保証されると確信していますが0
、文字列リテラルの初期化により、配列へのコピーが発生するのではないかと考えています。残りの要素は初期化されていないままです。 \0