关于C语言顺序表实现的一些小问题。
typedef struct{
ElemType *elem;
int length;
int listsize;
}SqList;
SqList L;
SqList* InitiaList() {
L.elem=(ElemType *)malloc(LIST_SIZE*sizeof(ElemType));
if(!L.elem)
{
printf("溢出,扩展空间失败!");
return 0;
}
L.length=0;/*长度为0*/
L.listsize=LIST_SIZE;/*分配的内存空间为LIST_SIZE*/
return &L;
}
这上面的
return &L ;这个语句是将L的地址返回给谁啊。。。主函数里是直接调用这个函数的 c语言
[解决办法]
你看主函数哪个调用这个函数就是返回给谁,如果没有赋值操作就是初始化L用的,
这函数只是初始化一个全局变量L,被把L的地址返回,返回值用没用没关系
[解决办法]
返回L的引用
[解决办法]
把调用的部分代码贴上来看看
typedef struct
{
int i;
}s;
s st;
s* initS()
{
st.i = 0;
return &st;
}
s* st1 = initS();
printf("%d\n",st1->i);