これはスタックとintパラメータを取り込み、intをstackNodeの一部に変換し、追加された新しいノードを持つ新しいスタックを返す(pushNodeとStack適切に)初期化されて:Cを使用してスタックにアイテムをプッシュする
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;
}
私が午前問題は、毎回私はプッシュ機能を実行することである以上、それは私が走ったパラメータとしてスタック内の他の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!
は私が間違って何をやっている、あなたはノードのためにメモリを割り当てることができませんでした
は[ 'のstd ::スタックを<>']を使用します(http:// en.cppreference.com/w/cpp/container/stack);または、[mcve]を提供する。 –
@Danこの質問はCではなく、C++ –
@GovindParmar point taken;おそらく私はまだ "or ..."で覆われているかもしれませんが:-)? –