【发布时间】:2017-06-16 05:55:32
【问题描述】:
这是我的 push 函数,它接受一个 stack 和一个 int a 参数,将 int 转换为 stackNode 的一部分并返回一个带有添加的新节点的新堆栈(StackNode 和 Stack 已经正确初始化):
Stack push(Stack stk,int data){
struct StackNode *top = stk.top;
struct StackNode *node;
node->data = data;
node->nextNode = top;
stk.top = node;
stk.count++;
return stk;
}
我遇到的问题是,每次我运行 push 函数时,它都会将堆栈中的其他 StackNode 项作为我运行的参数覆盖。
例如:
push(stk, 3): stack output = 3 //good so far
push (stk, 4): stack output= 4 4//the correct output would be 3 4!
push(stk, 56): stack out put= 56 56 56 //what's going on!
我做错了什么,请帮忙
【问题讨论】:
标签: c pointers stack push singly-linked-list