int main(void)
{
char four[4] = "four";
return 0;
}
C ++プログラムとしてコンパイルすると、G++はレポートします
xxx.cpp:関数int main():
xxx.cpp:3:エラー:初期化子-文字の配列の文字列が長すぎます
Cプログラムをコンパイルすると、GCCはエラーを報告しません。
予想どおり、割り当ては4バイトすべてを変数に正しくコピーしているように見えます。
だから私の質問は要約すると.....
Cで観察された動作は正しいですか、それともどこかで未定義の動作に触れていますか、それともまったく別のものですか?