回 帖 发 新 帖 刷新版面

主题:新建一个线型表,看看哪里错了

#include<stdio.h>
#include<stdlib.h>
#define Maxsize 100
typedef struct{
  int *elem;
  int length;
  int size;
}sqlist;
initsqlist(sqlist *L)
{
 int i;
 L->elem=(int*)malloc(Maxsize*sizeof(int));
 if(!L->elem)return 0;
 L->length=0;
 L->size=Maxsize;
 printf("请输入5个数");
 for (i=0;i<5;i++)
 {
     scanf("%d",L->elem[i]);
 }
}
main()
{
 sqlist *p;
 initsqlist(*p);
}

回复列表 (共3个回复)

沙发

看不出你是建顺序表还是单链表,好像你想建单链表
单链表的头文件是:
typedef int datatype;
typedef struct link_node{
   datatype info;
   datatype link_node *next;
}node;
顺序表的是:
#define MAXSIZE 100
typedef int datatype;
typedef struct {
  datatype a[MAXSIZE];
  int size;
 }sqlist;


你的主函数里的函数调用的形参错了 应为 initsqlist(p);

板凳


#include<stdio.h>
#include<stdlib.h>
#define Maxsize 100
typedef struct{
  int *elem;
  int length;
  int size;
}sqlist;
initsqlist(sqlist *L)
{
 int i;
 L->elem=(int*)malloc(Maxsize*sizeof(int));
 if(!L->elem)return 0;
 L->length=0;
 L->size=Maxsize;
 printf("请输入5个数");
 for (i=0;i<5;i++)
 {
     scanf("%d",&L->elem[i]);//取地址
 }
}
int main()
{
 sqlist p;  //把这里和下面都换一下
 initsqlist(&p);//
 return 0;
}
其它地方就没什么问题了。

3 楼

不好意思,我是线型表,我没说清楚

我来回复

您尚未登录,请登录后再回复。点此登录或注册