2015-12-06 43 views
-4

我想調用一個功能,但我不能。我總是得到錯誤。該程序會要求用戶輸入座位號:如何調用此功能:無效SeatMakeEmpty(座椅*座椅)從主

scanf("%d", &seatNum); 

用輸入座位號,它會調用這個函數:

void SeatMakeEmpty(Seat* seat) { 
    strcpy((*seat).firstName, "empty"); 
    strcpy((*seat).lastName, "empty"); 
    (*seat).amountPaid = 0; 
    return; 
} 

我怎麼能說這樣firstNamelastName設置該功能爲「空」,而amountPaid是0?

+0

胡安,我已經改寫了這篇文章有點閱讀更乾淨。請仔細檢查一下,以確保它仍然說出你想說的話。 –

+1

你正在遺漏太多的信息。你說你得到錯誤。你得到什麼錯誤? –

+1

'SeatMakeEmpty(&someVariableThatsASeat);'? – immibis

回答

1

一個明顯的問題是,你正在讀這樣的座位號碼:scanf("%d", &seatNum);,這意味着,seatNum是一個小數(因此%d),所以一個數字。

但是,函數SeatMakeEmpty(Seat* seat)請求類型爲Seat的指針參數!你將不得不通過正確的論點。在你的電話SeatMakeEmpty(&seatNum);中,你傳遞一個指向int而不是Seat的指針。所以在你的情況下,這意味着你必須:

  • 尋找正確的座位,對應於用戶提供的號碼seatNum
  • 獲得該座位並通過作爲參數SeatMakeEmpty