Проблемы с C ++ при передаче массива в функцию

0

У меня есть этот код:

#include <iostream>
using namespace std;

int recursivefunction(int NbProducts, int NbPlates, int prevlevel, int currentlevel,     int thearray[] ) {
currentlevel = (prevlevel + 1);
if(prevlevel = 0) { currentlevel = 1; }  //only ensures that the FIRST run has no issues with negatives
while(thearray[currentlevel] < (NbProducts - NbPlates + 1)) {
    if(currentlevel = NbPlates) {
        cout << thearray[currentlevel] << endl;  //debug, do something to test full program
        }
        else recursivefunction(NbProducts, NbPlates, prevlevel, currentlevel, thearray[] );
    }
}
int main() {
int NbProducts = 10, NbPlates = 3, prevlevel = 0, currentlevel = 0;
int thearray[100];
recursivefunction (NbProducts, NbPlates, prevlevel, currentlevel, thearray[]);
}

и он продолжает давать мне "ожидаемое значение до"] "в" thearray ". Игнорируйте остальную часть программы, она ничего не делает прямо сейчас. Если я дам значение внутри этих скобок, это дает мне множество другие ошибки. Любые идеи?

  • 0
    попробуйте передать * thearray и попробуйте
  • 2
    Вам нужно удалить [] из переменной при вызове функции.
Показать ещё 2 комментария
Теги:
arrays
function

1 ответ

0

Когда вы вызываете функцию, она должна передать сам массив w/o []

recursivefunction (NbProducts, NbPlates, prevlevel, currentlevel, thearray);
  • 0
    Привет; который возвращает следующее: ошибка: недопустимое преобразование из 'int *' в 'int' [-fpermissive] рекурсивная функция (NbProducts, NbPlates, prevlevel, currentlevel, thearray); стрелка указывает в конце «thearray» какие-либо идеи?
  • 0
    int recursivefunction (int NbProducts, int NbPlates, int prevlevel, int currentlevel, int * thearray)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню