数据结构顺序表主函数

问题遇到的现象和发生背景
#include<iostream>
using namespace std;
#define MAXSIZE 1042
typedef int elemtype;

typedef struct sequlist
{
    elemtype data[MAXSIZE];
    int last;
}SequenList;
SequenList*Init_SequenList()     //初始化
{
    SequenList*L;
    L=new SequenList;
    if(L!=NULL){
    
        L->last=-1;
    }
    return L ;
}
//输入
int Print_SequenList(SequenList*L,int n)
{
    int i;
    for(i=0;i<n;i++)
    {
        cin>>L->data[i];
        L->last++;
    }
    return 1;
}
int Shou_List(SequenList*L)
{
    int i;
    for(i=0;i<=L->last;i++)
    {    cout<<L->data[i];
    if(i%5==0)cout<<endl;
    }
    cout<<endl;
    return 1;
}
void main()
{
    int n;
    cin>>n;
    SequenList L;
    Print_SequenList(&L,n);    
    Shou_List(&L);
}

我想要达到的结果:

没有报错,就是可以输入,但输出不了

主函数里,定义了SequenList L; ,但 L.last 没有初始化,供参考:

#include<iostream>
using namespace std;
#define MAXSIZE 1042
typedef int elemtype;

typedef struct sequlist
{
    elemtype data[MAXSIZE];
    int last;
}SequenList;
SequenList*Init_SequenList()//初始化
{
    SequenList*L;
    L=new SequenList;
    if(L!=NULL){

        L->last=-1;
    }
    return L ;
}
//输入
int Print_SequenList(SequenList*L,int n)
{
    int i;
    for(i=0;i<n;i++)
    {
        cin>>L->data[i];
        L->last++;
    }
    return 1;
}
int Shou_List(SequenList*L)
{
    int i;
    for(i=0;i<=L->last;i++)
    {    cout<<L->data[i];
         if((i+1)%5==0)cout<<endl; //if(i%5==0)cout<<endl; 修改
    }
    cout<<endl;
    return 1;
}
void main()
{
    int n;
    cin>>n;
    SequenList L;
    L.last = -1;  //修改
    Print_SequenList(&L,n);
    Shou_List(&L);
}