数据结构中函数传值问题

在C++数据结构中有这样的一段代码

typedef int ElemType;
typedef struct {
    int stacksize;
    ElemType *base;//Top和base都是来存取栈的位置 区索引作用 
    ElemType *top;
}sqStack; 

//创建stack 
void sq_Init(sqStack *s)
{
    s->base = (ElemType*)malloc(Stack_Init_Size*sizeof(ElemType));
    if(!s->base)
    exit(0);
    s->top = s->base;
    s->stacksize = Stack_Init_Size;

}

那在我需要调用sq_Init函数的时候,应该怎样传值。

int main()
{
  sqStack s;
    sq_Init(&s);
    return 0;
}

还是

int main()
{
  sqStack *s;
    sq_Init(s);
    return 0;
}

为什么呢?提前谢谢大家了!

1个回答

应该是这个
int main()
{
sqStack s;
sq_Init(&s);
return 0;
}

另一个如果要那么写,得修改下

int main()
{
sqStack *s = (sqStack *)malloc(sizeof(sqStack));
sq_Init(s);
return 0;
}

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐