Что это за объявление массива такое? Cтранно, что у тебя вообще компилятор допустил такое объявление.
Для объявления массива типа char нужно делать так: char arr[16]; - вместится 16 символов.
Чтобы хранить "строки" нужно объявлять так: char arr[12][16] - 12 строк по 16 символов.
Записывать можно только определенной длины - 16 символов(1 из них нулевой).
Можно хранить указатели на выделенные буферы. Объявлять массив придется так: char* arr[12], далее объявляем и присваиваем char* str = "test"; и в необходимую ячейку записываем, либо выделяем через malloc, форматируем и записываем в массив.
Для таких целей есть std::vector и std::string с которыми удобнее работать.
Можно парочку статей что ли почитать, нежели херачить наугад то, что изучал из других языков(если ты их изучал конечно, а так наобум - нет смысла, как ты заметил).