求大神解答~全局变量和顺序表
我运行了一下发现一定要int Initlist(Sqlist &L) 和int Insertlist(Sqlist &L)其中一个需要参数传引用就可以运行,如果这个两个函数都没有参数传引用就不能运行 为啥嘞~
为什么不是定义全局变量后 直接就是相当于对全局变量分配空间、赋值等 而是还需要参数传引用
程序代码:#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define maxsize 10
typedef struct Node
{
int number;
char name[10];
int age;
}Student;
typedef struct Sqlist
{
int length;
Student *elem;
}Sqlist;
Sqlist L;
//分配空间
int Initlist(Sqlist &L)
{
L.elem=(Student *)malloc(maxsize*sizeof(Student));
if(!L.elem)
return 0;
L.length=0;
return 1;
}
//输入数据
int Insertlist(Sqlist &L)
{
int i,n;
if(L.length==maxsize)
return 0;
printf("请输入学生个数 ");
scanf("%d",&n);
printf("请输入%d个学生的年龄,姓名和学号\n",n);
for(i=0;i<3;i++)
{
scanf("%d %s %d",&L.elem[i].age,L.elem[i].name,&L.elem[i].number);
++L.length;
}
}
void Printlist(Sqlist L)
{
int i;
printf("学生的信息如下\n");
for(i=0;i<L.length;i++)
printf("%d %s %d\n",L.elem[i].age,L.elem[i].name,L.elem[i].number);
}
int main()
{
Initlist(L);
Insertlist(L);
Printlist(L);
return 0;
}










感谢你的回答