Ответ 1
Обе формы эквивалентны и разрешены.
char input[] = "abc";
или
char input[] = {"abc"};
Вот соответствующий абзац из стандарта C:
(C99, 6.7.8p14): "Массив типа символа может быть инициализирован литералом строки символов, необязательно заключенным в фигурные скобки"