int main(void)
{
char four[4] = "four";
return 0;
}
При компиляции в виде программы C++ G++ сообщает
xxx.cpp: в функции int main():
xxx.cpp:3: ошибка: слишком длинная строка инициализатора для массива символов
При компиляции программы на C GCC не сообщает об ошибке.
Мне кажется, что присваивание правильно копирует все 4 байта в переменную, как я и ожидал.
Итак, мой вопрос сводится к.....
Правильно ли наблюдаемое поведение в C, или я где-то касаюсь неопределенного поведения, или это вообще что-то другое?