#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
typedef struct
{
int data[6];
int length;
}list;
//初始化数组
void start(list l)
{
l.length=0; //初始化数组长度
}
//插入元素
bool Insert(list *l,int i,int e)
{
int j;
if(i<1||i>l->length + 1) //判断是否超出范围
return false;
i--;
for(j = l->length;j > i;j--)
l->data[j] = l->data[j - 1]; //将指定位置后的元素都向后移动一位
l->data[i] = e; //在指定位置插入元素
l->length++; //数组长度加1
return true;
}
//打印数组
void print(list l)
{
int i=0;
while(i<l.length)
{
printf("%d ",l.data[i]);
i++;
}
}
int main()
{
list l;
start(l);
int i;
for(i=1;i<7;i++)
Insert(&l,i,i);
printf("\n");
print(l);
return 0;
}
当data数组的大小为6的时候,插入元素就会出错,其他大小都没问题
不知道你这个问题是否已经解决, 如果还没有解决的话: