だから私はすでにこのコードを持っています: http://pastebin.com/3wuFNWGA
そして、これらの typedef を .h ファイルに入れました: http://pastebin.com/JTG9XHvW
ノードにメモリを割り当て、ノードにデータ (新しい要素) を格納し、ノードをスタックの一番上に挿入することで、ノードを my_stack に追加するプッシュ関数が必要です。コードは実行されますが、新しい値をスタックにプッシュした後に my_stack->top->data の値を出力しようとすると、スタックにプッシュしたはずの要素ではなく、常にゼロが出力されます。
私の人生では、理由がわかりません。新しいノードを作成して値をデータに保存するときに問題が発生するとは思わないので、 my_stack->top を最近追加されたノードに向けようとすると問題があると思いますか?
これは、スタック オーバーフローに関する私の最初の投稿でもあります。私はすべてが正しいことを願っています。
値をスタックにプッシュする push 関数は次のとおりです。
void push( Stack *my_stack, int newElement ) {
Node_s *newNode;
newNode = (Node_s *) malloc(sizeof(Node_s));
if( newNode == NULL ) {
printf("Error: malloc failed in push\n");
exit(EXIT_FAILURE);
}
newNode->data = newElement;
newNode->next = my_stack->top;
my_stack->top = newNode;
}