#include <stdio.h>
#include <stdlib.h>
#define N 10000
#include <time.h>
typedef struct Student{
int StudentId;
int ArrTime;
}Stu[];//线性表存放学生的信息。
typedef struct Strack{
int *base;
int *top;
int stracksize;
}SqStrack;
void InsertStudent(Stu &s,int count){
srand(time(NULL));
for(int i=1;i<=count;i++){
s[i].StudentId=10000+i;
s[i].ArrTime=rand()%16+6;
}
}
void init(SqStrack &l){
l.base=(int *)malloc(sizeof(int)*N);
if(l.base==NULL)
return;
l.top=l.base;
l.stracksize=N;
}//构建栈并对其初始化
void push(SqStrack &l,int e){
if(l.top-l.base>=l.stracksize){
l.base=(int *)realloc(l.base, (l.stracksize+N)*sizeof(int));
if(l.base==NULL) return;
l.top=l.base+N;
l.stracksize+=N;
}
*(l.top++)=e;
}//将一个元素入栈
void pop(SqStrack &l,int &e){
if(l.base!=l.top){
e=*(--l.top);
}
return;
}//出栈,并把出栈元素赋值给e
int main(){
SqStrack l;
init(l);
for(int i=0;i<10;i++){
push(l, i);
}
for(int i=0;i<10;i++){
int e;
pop(l, e);
printf("%d ",e);
}
Stu s;
InsertStudent(s);
return 0;
}
倒数第三行 Stu s;报错 Definition of variable with array type needs an explicit size or an initializer
求告知如何解决
不知道你这个问题是否已经解决, 如果还没有解决的话: