2015-02-08 61 views
-1

所以我有一個簡單的C文件用做一堆 的意圖,但我一直有與檢查,如果樁是空的函數麻煩:C文件編譯,但一個簡單的功能給我麻煩

int checkEmpty(pile a) 
{ 
    return a->top==NULL; 
} 

說,我宣佈,我構建一個空樁a->top=NULL
編輯功能:提供更多信息 我的定義堆:

typedef struct{ 
    info* top; 
}pile_t; 
typedef pile_t* pile; 

信息是另一個structu再次,我的程序編譯,但它停止時,它使用功能
編輯工作:我不好,這是我使用的代碼:

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

你有什麼麻煩? – Will 2015-02-08 03:41:24

+0

你能發佈確切的錯誤嗎? – Kacy 2015-02-08 03:44:05

+3

如果你認爲它給你帶來麻煩,那就從我們的想象中想象一下,我們不知道'樁'或'頂部'是什麼。實際上「有什麼麻煩」是什麼意思*? – WhozCraig 2015-02-08 03:44:22

回答

1

我剛編譯並運行你的代碼。 它的工作原理...

輸出是: 1

我做的唯一的事情就是確定TRUE和bool的自己。而包括文件stdlib.h和stdio.h中

1

你代替類型變量名;那就是,你想要return a->top==NULL

我覺得很難相信這個編譯。

+0

即時對不起,我不得不在這裏寫代碼,因爲我自己的西班牙語,wouldnt編譯,否則我同意。它的a-> top == NULL – Oscar 2015-02-08 03:43:21

0

看起來像你的程序要返回一個布爾值,而不是一個int的嘗試

bool checkEmpty(pile a){ 
return pile->top==NULL;} 

或創建一個布爾變量,如果聲明是真實的,如果聲明是真實的反之亦然

+0

布爾可以被提升爲int。 – Kacy 2015-02-08 03:45:00

+0

* *類型*不能*取消引用*。 – WhozCraig 2015-02-08 03:45:48

+0

用布爾之前,不工作 – Oscar 2015-02-08 03:45:56