所以我有一个简单的C文件,意图打桩 但我一直在检查桩是否为空的功能有问题:
int checkEmpty(pile a)
{
return a->top==NULL;
}
说我宣布了一个函数,用a->top=NULL
来构造一个空堆
编辑:提供更多信息
我定义了桩:
typedef struct{
info* top;
}pile_t;
typedef pile_t* pile;
info是另一种结构,我的程序编译但是当它使用函数
时它停止工作
编辑:我的不好,这是我正在使用的代码:
typedef struct elem_t{
int num;
struct elem_t* next;
}elem_s;
typedef elem_s* elem;
typedef struct{
elem top;
}pile_s;
typedef pile_s* pile;
elem consElem(int i){
elem p=(elem)malloc(sizeof(elem_s));
p->num=i;
p->next=NULL;
return p;
}
pile consPile(){
pile a=(pile)malloc(sizeof(pile_s));
a->top=NULL;
return a;
}
bool checkEmpty(pile A){
return A->top==NULL;
}
void main(){
pile A=consPile();
printf("%d",checkEmpty(A)==TRUE);
}
答案 0 :(得分:1)
您使用的是类型而不是变量名称;也就是说,你想要return a->top==NULL
。
我觉得很难相信这个编译好了。
答案 1 :(得分:1)
我刚刚编译并运行了你的代码。 它有效......
输出是:
1
我唯一做的就是定义TRUE并自己布尔。并包括stdlib.h和stdio.h
答案 2 :(得分:0)
看起来你的程序想要返回bool而不是int try
bool checkEmpty(pile a){
return pile->top==NULL;}
或创建bool变量和if语句如果语句为true则为true,反之亦然