主题:关于头节点、头指针的问题(请教)
现在准备上机编程,刚开始就有问题了,请帮忙看一下:
#include<stdio.h>
#include<malloc.h>
#define null 0
#define elemtype int
//线性单链表结点
typedef struct lnode{
elemtype data;
struct lnode *next;
}lnode,*Linklist;
//创建函数
void Creat_linklist(lnode &L){ //以L为头结点建立长度为n的链表
int i,n;
lnode *p,*q;
L=(Linklist)malloc(sizeof(lnode));
L.next=null;
printf("输入链表元素个数\n");
scanf("%d",n);
printf("顺序输入元素");
q=&L;
for(i=0;i<n;i++){ //顺序建立链表
p=(lnode*)malloc(sizeof(lnode));
scanf("%d",p->data);
p->next=null;
q->next=p;
q=p;
}
}
//输出函数
void Print_list(lnode &L){ //假设元素类型为整型
lnode *p;
p=&L;
p=p->next;
while(p!=null){
printf("%d",p->data);
}
}
//主函数
void main()
{
lnode L;
Creat_linklist(L);
Print_list(L);
}
请问: L=(Linklist)malloc(sizeof(lnode)); 错在那里了??
#include<stdio.h>
#include<malloc.h>
#define null 0
#define elemtype int
//线性单链表结点
typedef struct lnode{
elemtype data;
struct lnode *next;
}lnode,*Linklist;
//创建函数
void Creat_linklist(lnode &L){ //以L为头结点建立长度为n的链表
int i,n;
lnode *p,*q;
L=(Linklist)malloc(sizeof(lnode));
L.next=null;
printf("输入链表元素个数\n");
scanf("%d",n);
printf("顺序输入元素");
q=&L;
for(i=0;i<n;i++){ //顺序建立链表
p=(lnode*)malloc(sizeof(lnode));
scanf("%d",p->data);
p->next=null;
q->next=p;
q=p;
}
}
//输出函数
void Print_list(lnode &L){ //假设元素类型为整型
lnode *p;
p=&L;
p=p->next;
while(p!=null){
printf("%d",p->data);
}
}
//主函数
void main()
{
lnode L;
Creat_linklist(L);
Print_list(L);
}
请问: L=(Linklist)malloc(sizeof(lnode)); 错在那里了??