北邮人bbs

北邮人bbs

关键在于主函数中的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;

}

//---------------------------------------------------------------------------