大家看看我写的这个双链表有什么问题吗?
#include <stdio.h>
typedef int DataType;
typedef struct node
{
DataType v;
struct node *previous;
struct node *next;
} Node;
Node *head;
add(DataType v)
{
Node *newNode = (Node*) malloc(sizeof (*head));
newNode->v = v;
newNode->next = head;
newNode->previous = head->previous;
newNode->next->previous = newNode;
newNode->previous->next = newNode;
}
main()
{
Node *n;
DataType i;
head->next = head;
head->previous = head;
printf("please enter some integers,\nenter a non-integer to finish:\n");
while(scanf("%d", &i) == 1)
add(i);
printf("the integers you entered are:\n");
for(n = head->next; n != head; n = n->next) {
if(n != head->next) printf(", ");
printf("%d", (*n).v);
}
}
编译没问题,但运行的时候,总是在输出所有元素以后,出现一句“null pointer asignment”,空指针赋值。我输出完以后就没有语句了呀,空指针赋值倒底在哪里啊?请大家指教。