На протяжении l oop, temp
указывает на один и тот же кусок памяти, который представляет один узел. Вы постоянно устанавливаете указатели next
и prev
этого узла так, чтобы они указывали на себя.
Мне кажется, что это приведет к бесконечному l oop, пока вы пытаетесь построить список. После второй итерации обход списка никогда не закончится, так как каждый раз, когда вы переходите к следующему узлу, вы действительно смотрите на один и тот же узел.
Возможно, вы захотите повторно инициализировать temp
с новым mallo c вызовите каждую итерацию l oop, чтобы вы на самом деле получили различные узлы.
(Кроме того, нет необходимости инициализировать temp2
с помощью mallo c. Вы никогда ничего не делаете с этим память. Первое использование temp2
- присвоить ему значение head
, которое указывает куда-то еще.)