Как указано в заголовке, я хотел скопировать строку из указателя char
в расположение в массиве char
указателей.При выполнении strcpy()
вывод приводит к ошибке seg, но не понимаю, почему это происходит.
Сокращенный код имеет следующее:
void make_history(char *entry) {
//static char past_entries[10][10];
static char *past_entries[10];
static int index = 0;
static int array_index = 0;
char *input;
if((input = strchr(entry, '\n')) != NULL)
*input = '\0';
if(strcmp(entry, "history") != 0) {
strcpy(past_entries[index], entry);
*past_entries[index] = &entry;
index = (index + 1) % 10;
array_index++;
}
}
Вместо попытки вернуть2d массив (что тоже очень сложно), я подумал, что будет проще скопировать дату из entry
в расположение в массиве указателей past_entries
.Опять же, strcpy
не работает, есть ли веская причина, по которой это происходит, и возможный обходной путь или решение этого исправления?
Спасибо