2016-08-05 39 views
0

IM編程全新的,我得到了很多錯誤:)堆棧中C,「廉政」

我嘗試編寫我的第一個堆棧這樣的,並嘗試檢查空之前預期的表達式:

#define SIZE 10 
    struct stack { 
     int myTop; 
     int items[SIZE]; 
    }; 
    int empty(int *s); 
int main() { 
    struct stack s; 
    s.items; 
    s.myTop; 
    int i; 
    int x; 
    for (i = 0 ; i < SIZE ; i ++) { 
     printf("enter you element"); 
     scanf("%d", &s.items[i]); 
    } 
    if (empty(int *s)) 
     printf("stack is empty"); 
    else 
     printf("stack is not empty"); 


    getchar(); 
    return 0; 
} 
int empty(int *s) { 
    if (s -> myTop == -1) 
     return 1; 
    else 
     return 0; 
} 
    enter code here 

和我得到這個錯誤: 行24預期的表達befor'int',它的意思是爲了上帝的緣故嗎? 和其他 plz幫助新來的傢伙:)

+0

24行似乎是'return 0;' – doctorlove

+1

嘗試刪除s.items; s.myTop;從main()和'在此輸入代碼'。 – someuser

+0

什麼是's.items;'和's.myTop;'應該這樣做? –

回答

3

這條線的問題是:

if (empty(*s)) 

將其更改爲:

if (empty(&s)) 

而且你的方法原型是錯誤的,它應該是:

int empty(struct stack *s) 

您無法將結構指針傳遞給i nt指針。

另外你在這裏沒有任何分配:

s.items; // = ? 
s.myTop; // = ? 

不知道你正在嘗試,但你完全編譯代碼(忽略警告)是here

+0

謝謝,它的工作, –

+0

@wizardofoz - 歡迎:) – Sadique