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

Пишу функцию:
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)


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

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

Похожие вопросы