数据结构_顺序表_安插函数_只能插入5个数_求大神赐教

数据结构_顺序表_插入函数_只能插入5个数_求大神赐教
这是程序源码:顺序表
#include<iostream>
#define Maxsize 100
typedef int DataType;

//定义结构体 
typedef struct SeqList
{
DataType list[Maxsize];
int size;
} SeqList;
//初始化
void ListIniate(SeqList *L)
{
L->size=0;

//求当前元素个数
int ListLength(SeqList L) 
{
return L.size;
}
//插入元素,成功返回1,失败返回0 
int ListInsert(SeqList *L,int i,DataType x)
{
if(L->size>=Maxsize)
{
std::cout<<"顺序表已满无法插入!"<<std::endl;
return 0;
}
else if(i<0||i>L->size)
{
std::cout<<"插入位置输入不合法!"<<std::endl;
return 0;
}
else
{
for(int j=L->size;j>i;j--)
{
L->list[j]=L->list[j-1];
}
L->list[i]=x;
L->size++;
return 1;
}

//删除元素,成功返回1,失败返回0 
int ListDelete(SeqList *L,int i,DataType *x)
{
if(L->size<=0)
{
std::cout<<"顺序表已空无法删除!"<<std::endl;
return 0; 
}
else if(i<0||i>L->size-1)
{
std::cout<<"删除位置不合法!"<<std::endl;
return 0; 
}
else 
{
*x=L->list[i];
for(int j=i+1;j<=L->size-1;j++)
{
L->list[j-1]=L->list[j];
}
L->size--;
return 1;


//取数据元素,success return 1, fail return 0
int ListGet(SeqList L,int i,DataType *x)
{
if(i<0||i>=L.size)
{
std::cout<<"参数i不合法!"<<std::endl;
return 0;
}
else
{
*x=L.list[i];
return 1;
}


这是测试函数:
#include<iostream>

#define Maxsize 100
typedef int DataType;
#include "SeqList.h"
int main()
{

SeqList *myList;
int x;
ListIniate(myList);
for ( int i = 0; i < 10; i++ )  
    {  std::cout<<"这是第"<<i+1<<"次循环"<<std::endl; 
        if (ListInsert(myList, i, i+1) == 0)  
        {  
            std::cout<<"插入错误"<<std::endl;  
            return 0 ;  
        }  
  
    }  
    
}

这是运行结果:
数据结构_顺序表_安插函数_只能插入5个数_求大神赐教
测试函数明明给顺序表插入10个数,可是却只能循环5次不知道这是为什么?
------解决思路----------------------
引用:
Quote: 引用:

 SeqList *myList;这里没有初始化,应该new一个;
试了一下没有问题,输出10次

下面有一个初始化函数ListInitiate(),用这个不可以吗?请问如何new?数据结构_顺序表_安插函数_只能插入5个数_求大神赐教

ListInitiate()只是把L也就是传入的SeqList 实例L的size设为0,L本身并没有分配内存。
改成SeqList *myList = new SeqList();
没有初始化,你运行没出错吗?