Связанные списки на C без malloc

#include <stdio.h>

typedef struct node
{
      int i;
      struct node *next;
}node;

node getnode(int a)
{
      struct node n;
      n.i=a;
      n.next=NULL;
      return n;
}

main()
{
     int i;
     node newtemp,root,temp;

     scanf("%d",&i);
     root=getnode(i);
     temp=root;

     while(i--)
     {
         newtemp=getnode(i);

         temp.next=&newtemp;
         if(root.next==NULL)
         {
            root=temp;
         }
        temp=*(temp.next);
     }


     temp=root;

     while( temp.next != NULL )
     {
         printf(" %d ",temp.i);
         temp=*(temp.next);
     }
}

Я пытаюсь создать связанный список без использования malloc. Программа выводит на печать только корень и никакие узлы после него. Я не смог найти ошибку. Если бы возникла проблема с памятью, компилятор gcc выдал бы ошибку сегментации. (?) Не обращайте внимания на плохой стиль программирования.

17
задан Ken Bloom 4 October 2010 в 15:10
поделиться