char arr [n] = ""; Это работает нормально с g cc, но с лязгом ниже видна ошибка: ошибка: объект переменного размера не может быть инициализирован
Хорошо ли использовать memset с '\ 0'?
Просто используйте явное memset:
memset
char a[n]; memset(a, 0, n);