首页 > 解决方案 > 我不知道为什么我的屏幕上没有输出这个使用 c 语言中的数组的简单堆栈实现

问题描述

#include<stdio.h>
#include<stdlib.h>
struct stack{
    int size;
    int* ptr;
    int top;
};
int isfull(struct stack* a){
    if (a->top==a->size)
    {
        return 1;
    }
    return 0;
}
int isempty(struct stack* a){
     if (a->top == -1)
    {
        return 1;
    }
    else{
        return 0;
        }
}

int main()
{
    struct stack* A;
    A->size = 10;
    A->top = -1;
    A->ptr = (int *)malloc(A->size*sizeof(int));

    if(isempty(A)){
        printf("Stack is empty");
    }

    return 0;
}

输出窗口上应该有“堆栈为空”,但它是空白的,没有编译错误。我被困在这几个小时请帮帮我。我试过 getch() 方法也没有帮助。我用vscode。谢谢你。

标签: c

解决方案


A可能不应该是一个指针,你可能想要这个:

int main()
{
  struct stack A;

  A.size = 10;
  A.top = -1;
  A.ptr = malloc(A.size * sizeof(int));

  if (isempty(&A)) {
    printf("Stack is empty");
  }

  return 0;
}

推荐阅读