初学者问题:这个程序错在哪
编译环境:vc6
#include "stdafx.h"
#include <stdio.h>
#include <stdlib.h>
typedef struct node{
int value;
struct node *next;
}Inode;
int main()
{
Inode *p,*q,*root;
root = (Inode*)malloc(sizeof(Inode));
p = root;
q = root;
int data;
do
{
p = (Inode*)malloc(sizeof(Inode));
q = p;
scanf("%d",&data);
if(data != 0)
{
p->value = data;
p->next = NULL;
q->next = p;
q = p;
}
free(p);
}while(data != 0);
printf("Result:");
while(root->next != NULL)
{
printf("%d ",root->next->value);
root = root->next;
}
free(root);
printf("\n");
return 0;
}