typedef struct为数组后,在主函数定义出错

#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 

求告知如何解决

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 以帮助更多的人 ^-^