Когда вы выделяете последний узел, вы никогда не устанавливаете его указатель next
.Поскольку он неинициализирован, он будет содержать все данные, которые уже были в этой ячейке памяти, что почти наверняка не равно NULL.После того, как вы обработали все узлы в цикле while
, ваша программа разыменует этот неинициализированный указатель и вызовет неопределенное поведение.