1、关键在于主函数中的Q指针在定义之后没有指向任何合法空间,所以要先为它分配空间,然后才能在init函数中对它的成员进行操作(为data成员分配空间)。
2、修改如下:
3、//---------------------------------------------------------------------------
4、#include
5、#include /*注意这里*/
6、#define SIZE 100 /*注意这里*/
7、typedef struct
8、{
9、int *data;
10、int length;
11、int size;
12、}Sqlist;
13、void Initlist_Sq( Sqlist *L)
14、{
15、L->data=(int*)malloc(SIZE*sizeof(int));
16、if(!L->data)exit(-2);
17、L->length=0;
18、L->size=SIZE;
19、}
20、int main()
21、{int i,k;
22、Sqlist *Q=(Sqlist*)malloc(sizeof(Sqlist)); /*注意这里*/
23、Initlist_Sq(Q);
24、printf("请输入:length");
25、scanf("%d",&Q->length);
26、printf("please input the numbers:");
27、for (i=0;i<=Q->length;i++)
28、{
29、scanf("%d",&Q->data[i]); /*注意这里*/
30、printf("%d",Q->data[i]);
31、}
32、system("pause");/*注意这里*/
33、return 0;
34、}
35、//---------------------------------------------------------------------------
【#北邮人bbs#】到此分享完毕,希望对大家有所帮助。