请问一下问什么我的代码在运行的时候为什么会直接结束,不理解“取消对 NULL指针 *L 的引用”
这是在写顺序表时遇到的问题,求解答。
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define maxsize 50
typedef struct
{
int data[maxsize];
int length;
}sqlist;
void creatlist(sqlist** L, int a[], int n)
{
*L = (sqlist*)malloc(sizeof(sqlist));
for (int i = 0;i < n; i++)
{
(*L)->data[i] = a[i];
}
}
void inlist(sqlist** L)
{
*L = (sqlist*)malloc(sizeof(sqlist));
(*L)->length = 0;
}
bool ifempty(sqlist* L)
{
return (L->length == 0);
}
void add(sqlist** L,int a,int n)
{
printf("插入的元素,插入的位置");
for (int i = (*L)->length; i >=n; i--)
{
(*L)->data[i - 1] = (*L)->data[i - 1];
}
(*L)->data[n] = a;
}
void input(sqlist* L)
{
for(int i=0;i<L->length-1;i++)
{
printf("%d", L->data[i]);
}
}
int main()
{
sqlist* mylist;
int a[4] = {1,2,3,4};
inlist(&mylist);
int n = 2;
creatlist(&mylist,a,n);
int b = 1, c = 2;
add(&mylist,b ,c);
return 0;
}