#include
#include
typedef struct LNODE{
char data;
struct LNODE* next;
}LNODE;
void creatlist(LNODE* head);
void insert(LNODE* head);
void output(LNODE* head);
int main(int argc,char* argv[])
{
LNODE* head=NULL;
creatlist(head);
insert(head);
output(head);
return 0;
}
void creatlist(LNODE* head){ //创建一个只有表头节点的链表
head=(LNODE*)malloc(sizeof(LNODE));
}
void insert(LNODE* head){
LNODE* p=NULL;
p=(LNODE*)malloc(sizeof(LNODE));
p->data=getchar();
p->next=NULL;
p->next=head->next;
head->next=p;
}
void output(LNODE* head){
LNODE* p=NULL;
p=head->next;
while(p!=NULL){
putchar(p->data);
p=p->next;
}
}
如果一个指针为空指针,那么该指针所指向的逻辑地址空间位于空指针赋值分区的区间上。空指针赋值分区上的逻辑地址没有物理存储器与之对应,因而访问时就会产生违规访问的异常。
p->next=head->next; 问题的所在。