一周三更 2020-01-28 19:47 采纳率: 0%
浏览 234

数据结构中函数传值问题

在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条回答 默认 最新

  • threenewbee 2020-01-28 21:48
    关注

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

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

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

    评论

报告相同问题?

悬赏问题

  • ¥40 复杂的限制性的商函数处理
  • ¥15 程序不包含适用于入口点的静态Main方法
  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码