关于数据结构顺序表的问题

来源:百度知道 编辑:UC知道 时间:2024/05/26 00:56:47
我创建了一个顺序表,想输出时出错了,请帮看一下!
#include"stdio.h"
typedef int elem;
#define max 100
typedef struct
{
int *elem;
int length;
}sqlist;

void initlist(sqlist *p)
{
int x,i=0;
p=(sqlist *)malloc(max*sizeof(int));
if(!p) printf("\nCann't form the list!");
p->length=0;
printf("\n Now,input number until 0:");
scanf("%d",&x);
while(x!=0)
{
p->elem[i]=x;
p->length++;
i++;
scanf("%d",&x);
}
printf("\nThe length of the list is:%d",i);
}

void output(sqlist *p)
{
int i;
printf("\nOutput numbers now:");
for(i=0;i<p->length;i++)
printf("%d",p->elem[i]);
}
void main()
{
sqlist p,q,r;
initlist(&p);
output(&p);

initlist(&q);
outpu

改成 p->elem=(elem *)malloc(max*sizeof(int));
还有 你要加一个 #include<malloc.h>

p=(sqlist *)malloc(max*sizeof(int));
临时变量p
而且申请的内存不是sqlist

第二行(typedef int elem;)和第六行(int *elem;)有错误