c - 我不知道为什么我的屏幕上没有输出这个使用 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。谢谢你。
解决方案
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;
}
推荐阅读
- ios - 在 Swift 中清除 UserDefaults 的子集
- java - 如何在临时基础上触发入站通道适配器?
- javascript - How to implement singleton pattern in the following situation?
- perl - 使用 perl 打印特定的 INFILE 区域
- javascript - 复制粘贴值时电子邮件存在检查不起作用
- javascript - 如何将 Chrome 扩展中 popup.js 文件中的数据存储到 IndexedDB
- javascript - JS 文件在 webhost 中不起作用,但适用于我的本地 xampp
- r - 在 R 中使用 Ifelse 和 Or
- android - 如何在android中使用日历显示日期和时间
- javascript - 如何在vuejs 2中路由到组件中的特定div