2015-02-08 2 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

+0

Можете ли вы высказать точную ошибку? – Kacy

+3

Если вы думаете, что это дает вам * проблему, представьте себе это с нашего конца, где мы не имеем понятия, что такое 'pile', или' top'. Что значит «иметь проблемы» на самом деле * означает * ?? – WhozCraig

ответ

1

Я только что скомпилировал и запустил ваш код. Он работает ...

Выход: 1

Единственное, что я сделал, было определить значение TRUE и BOOL себя. И включают stdlib.h и stdio.h

1

Вы использовали тип вместо имя переменной; то есть, вы хотите return a->top==NULL.

Мне трудно поверить, что это скомпилировано.

+0

Мне жаль, что мне пришлось написать этот код здесь, потому что мой собственный на испанском языке, не компилировал, иначе я согласен. его a-> top == NULL – Oscar

0

выглядит как ваша программа хочет вернуть логическое значение вместо междунар попробовать

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

или создать переменную Ьоо, и если утверждение, что верно, если утверждение верно и наоборот

+0

Bool можно повысить до int. – Kacy

+0

И * тип * не может быть * разыменован *. – WhozCraig

+0

Пробовал с bool раньше, не работает – Oscar