Поскольку вы пытаетесь скопировать в буквальную строку ("Northeast Asia"
).
В C ++ буквальная строка действительно является константой массивом символов, любой попытка изменить такой массив приведет к неопределенному поведению (которое иногда может express привести к аварийному завершению).
Если вы хотите MapIds[0]
указать для новой строки вы просто используете присваивание:
MapIds[0] = "gfggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggggg";
Поскольку буквенные строки являются константными массивами символов, C ++ на самом деле не позволяет иметь char*
для указания на них, вы должны использовать const char*
:
const char* MapIds[] = { ... };
Однако гораздо лучшим решением будет не использовать строки типа C и указатели char
(const
или нет) вообще, а только использовать std::string
:
std::string MapIds[] = { ... };
Затем вы можете изменить строки в самом массиве, используя простое присваивание, как показано выше.