Docus_Kingdom
@Docus_Kingdom
Ученик школы

Как использовать массив в рекурсии (С++)?

В рекурсивной функции мне нужно постоянно взаимодействовать с одним массивом и изменять его содержимое в зависимости от результатов функции, но праведный компилятор указывает, что нельзя вот так взять и пропихнуть массив в условие функции заново.
Знаю, что как-то можно это реализовать с помощью указателей, но я не понимаю как. Объясните, пожалуйста.
  • Вопрос задан
  • 1062 просмотра
Пригласить эксперта
Ответы на вопрос 1
Adamos
@Adamos
Вы, видимо, пытаетесь в каждом вызове функции передать весь массив.
Это не так просто делается и, на самом деле, не то, что вам нужно, потому что передана будет копия, а вы хотите изменить изначальный массив.
Указатель используется так:
int arr[32];
size_t index = 0;
recursive(&arr, index);
...
recursive(int **arr, index) {
  if(index < 32) {
    (*arr)[index] = 1;
    recursive(arr, ++index);
  }  
}

Правда, это примитивный С-way.
В С++ вместо такого массива предполагается использовать вектор и передавать его по ссылке.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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