Переменная lines
- это в основном массив указателей. И все указатели в массиве указывают на первый элемент того же самого массива nextline
.
Задание
lines[counter] = nextline;
только назначает указатель , он не выполняет глубокое копирование или дублирование строки, в настоящее время находящейся в nextline
.
Возможно, вы захотите использовать функцию strdup
вместо простого назначения указателей:
lines[counter] = strdup(nextline);
Не забудьте free
строки, которые вы strdup
позже.
Если вы знаете, как взаимодействуют массивы и указатели, простая отладка резиновой утки должна была сказать вам об этом всего за несколько секунд. И если вы не понимаете, что просто назначаете указатели, вам нужно вернуться к учебникам или конспектам лекций.