Вопреки другим ответам, уже опубликованным здесь, вы НЕ должны пытаться использовать strcpy для копирования в «карту».Перед тем как начать копирование, вы должны убедиться, что буфер не переполнен.Для этого вам следует использовать не размер источника, а размер получателя.Причина этого заключается в том, что источник потенциально может быть длиннее, чем место назначения.Чтобы избежать проблемы, которая может не поднять голову, пока вы не сделаете другие интенсивные вычисления, вы должны убедиться, что вы не пытаетесь скопировать в место назначения, которое недостаточно велико, чтобы содержать то, что вы пытаетесь скопировать вit.
Это сигнатура функции для копирования строк (ну, та, которую вы должны использовать здесь):
strncpy(dest, source, size);
Вот что вы должны использовать вместо:
strncpy(map[i], s.c_str(), sizeof(map[i]));
Редактировать:
В качестве альтернативы вы можете использовать strncpy_s () (если вы в Windows!), Что позволяет указывать длину источника и назначения.
strncpy_s(dest, dest_size, source, source_size)