1

以下のエラー メッセージが表示されます。解決できませんでした。たくさんググった。最終的にここに置くことを考えました。

ここに画像の説明を入力

#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>
int stop;
struct stack
{
  int data;
  struct stack *next;
};
typedef struct stack *node, *top;
//typedef struct stack *top;
void push()
{
    int i;
    struct stack *x;
    x = malloc(sizeof(struct stack));
    printf("\n Enter the element your want to insert");
    scanf("%d", &i);
    x->data = i;
    x->next = top;
    top = x;
}
void pop()
{
    int i;
    if(top == NULL)
    {
        printf("\nStack is empty\n");
    }
    else{
    i = top->data;
    free(top);
    top = top->next;

    }
}
void display()
{
    if(node != NULL)
    {
        printf("%d ", node->data);
        node = node->next;
    }

}
int main()
{
    int ch;
    while(1)
    {
        printf("\nEnter your option \n1. Insert(Push) \n2. Delete(Pop) \n3. Display  : \n");
        scanf("%d", &ch);
        switch(ch)
        {
            case 1:
                    push();
                    break;
            case 2:
                    pop();
                    break;
            case 3:
                    display();
                    break;
            default:
                    printf("Invalid Entery, Try Again");
        }
    }
return 0;
}
4

3 に答える 3

5

削除するtypedefと、すべて問題ありません。

于 2012-04-24T13:47:27.273 に答える
3

新しいタイプは必要ありません。

typedef struct stack *node, *top;

代わりに、新しい変数が必要です。

struct stack *node, *top;
于 2012-04-24T13:48:30.380 に答える
1

変数宣言を。と組み合わせることはできませんtypedef。のエイリアスを作成しstruct stackて単純に呼び出す場合はstack、次のようにコードを変更します。

struct stack {
    int data;
    struct stack *next;
};
typedef struct stack stack;
stack *node, *top;
于 2012-04-24T13:48:08.893 に答える