2015-12-06 2 views
-4

Я хочу вызвать функцию, но не могу. Я всегда получаю ошибки. Программа запрашивает у пользователя ввести номер сиденья:Как назвать эту функцию: void SeatMakeEmpty (Seat * seat) от основного

scanf("%d", &seatNum); 

с номером места введенного, он будет вызывать эту функцию:

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

Как можно назвать эту функцию так, чтобы firstName и lastName устанавливаются на «пустой», а amountPaid - 0?

+0

Хуан, я переписал это сообщение немного, чтобы читать более чисто. Пожалуйста, просмотрите его, чтобы убедиться, что он все еще говорит то, что вы пытались сказать. –

+1

Вы оставляете слишком много информации. Вы говорите, что получаете ошибки. Какие ошибки вы получаете? –

+1

'SeatMakeEmpty (& someVariableThatsASeat);'? – immibis

ответ

1

Одной очевидной проблемой, вы читаете номер места, как это: scanf("%d", &seatNum);, что означает, что seatNum десятичное (отсюда %d), поэтому число.

Однако функция SeatMakeEmpty(Seat* seat) запрашивает указатель-аргумент типа Seat! Вам придется передать правильный аргумент. В своем звонке SeatMakeEmpty(&seatNum); вы передаете ему указатель на int, а не Seat. Так что в вашем случае, это означает, что вы должны:

  • Посмотрите на правильное сиденье, соответствующее числу seatNum, которое было предоставлено пользователем.
  • Получите это место и передайте его в качестве аргумента для SeatMakeEmpty.
Смежные вопросы