Почему компилятор выдает ошибку?

Пишу функцию:
void MoveCard(card (&from)[deck_size], card (&to)[deck_size], int number)
{
    for (int i=0; i<deck_size; i++) {
        if(!to[i].checkReal())
        {
            to[i] = from[number];
            for (int i = number; i < (deck_size - 1); i++) from[i] = from[i+1];
            from[deck_size - 1] = card();
            break;
        }
    }
}

void game(card player[deck_size], card computer[deck_size], card DECK[deck_size], bool turn)
{
    card table[deck_size];
    int chosen_card;
    static bool winner=0;
    while (amount_of_cards(player) && amount_of_cards(computer))
    {
        if(turn)
        {
            showCards(player);
            do {
                cin >> chosen_card;
                chosen_card--;
            } while (player[chosen_card].checkReal()); //Водим номер карты, пока он действителен.
            MoveCard(player,  table,  chosen_card);
        }
    }
}


На строчке: MoveCard(player, table, chosen_card); компилятор выдает ошибку: No matching function to call: "MoveCard";
Точно так же вызвал функцию внутри main(), ошибки не возникло.
Компилятор: Xcode, проверял через gcc, та же ошибка, не понимаю в чем дело. Помогите!
wYO8NTG.png
  • Вопрос задан
  • 2595 просмотров
Решения вопроса 3
MoveCard(player, table, chosen_card);
Ответ написан
morozovdenis
@morozovdenis
попробуйте вынести наверх cигнатуру функции:
void MoveCard(card (&from)[deck_size], card (&to)[deck_size], int number);

void MoveCard(card (&from)[deck_size], card (&to)[deck_size], int number)
{
...
}

void game(card player[deck_size], card computer[deck_size], card DECK[deck_size], bool turn)
{
...
}
Ответ написан
Комментировать
EvgenijDv
@EvgenijDv
C/C++ programmer
void MoveCard(card (&from)[deck_size], card (&to)[deck_size], int number)


Что-то мне подсказывает, что этот прототип не совпадает с параметрами, которые вы передаете и поэтому компилятор и ругается. Что именно вы хотели сказать таким прототипом? Вы хотели передать ссылку на массив?
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы