这是个顺序表,自定义的函数MakeEmpty(SqList *S)对顺序表进行初始化,但是初始化后的S的形参的值length=0,无法传递给实参。请问是为什么啊,然后怎么在这个函数内部能让形参传递给实参呢?
#include<stdio.h>
#include<stdlib.h>
#define MAXSIZE 27/*存储空间初始分配量*/
typedef int ElemType;/*ElemType类型根据实际情况而定,这里假设为int*/
typedef struct
{/*线性表的顺序存储结构*/
ElemType data[MAXSIZE];/*数组存储数据元素*/
int length;/*线性表的当前长度*/
}SqList;
void MakeEmpty(SqList *S)
{/*初始化顺序表*/
S = (SqList *)malloc(sizeof(SqList));
S->length = 1;
}
int main(void)
{
SqList Sa;MakeEmpty(&Sa);
SqList Sb;MakeEmpty(&Sb);
SqList Sc;MakeEmpty(&Sc);
return 0;
}
测试效果
运行时,形参的值是改变了的
但是这个形参s的length值却没有传递个实参