Прежде всего, вы выделяете пространство для массива two char*
s, и у вас есть одиночный статический буфер для строки.Но вы пытаетесь прочитать три строки.Как вы думаете, откуда берется пространство для струн?Вы не выделяете его.
Вам необходимо сопоставить различные числа: выделите массив из трех строк, а затем выделите три строковых буферов:
char **lst = malloc(3 * sizeof *lst);
for (int i = 0; i < 3; i++) {
lst[i] = malloc(10);
fgets(lst[i], 10, fp);
}
И не забудьте free
все выделенные буферы впоследствии:
for (int i = 0; i < 3; i++) {
free(lst[i]);
}
free(lst);
… конечно, этот код тоже не очень хорош, так как он жестко кодирует числострок, которые вы можете прочитать, и максимальная длина строки.Но это должно начать вас.