
关键在于主函数中的Q指针在定义之后没有指向任何合法空间,所以要先为它分配空间,然后才能在init函数中对它的成员进行操作(为data成员分配空间)。
修改如下:
//---------------------------------------------------------------------------
#include
#include /*注意这里*/
#define SIZE 100 /*注意这里*/
typedef struct
{
int *data;
int length;
int size;
}Sqlist;
void Initlist_Sq( Sqlist *L)
{
L->data=(int*)malloc(SIZE*sizeof(int));
if(!L->data)exit(-2);
L->length=0;
L->size=SIZE;
}
int main()
{int i,k;
Sqlist *Q=(Sqlist*)malloc(sizeof(Sqlist)); /*注意这里*/
Initlist_Sq(Q);
printf("请输入:length");
scanf("%d",&Q->length);
printf("please input the numbers:");
for (i=0;i<=Q->length;i++)
{
scanf("%d",&Q->data[i]); /*注意这里*/
printf("%d",Q->data[i]);
}
system("pause");/*注意这里*/
return 0;
}
//---------------------------------------------------------------------------
