C文件编译,但一个简单的功能给我带来麻烦

时间:2015-02-08 03:37:52

标签: c

所以我有一个简单的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);
}

3 个答案:

答案 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,反之亦然