求大神解答~全局变量和顺序表
我运行了一下发现一定要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; }