Выражение должно иметь тип указателя на объект (массив) C++

Ошибка в Check_if_orderable: выражение должно иметь тип указателя на объект. Не понимаю, как указать этот тип? Я понимаю, что нужно поставить что-то перед arr (что-то.arr[0]), а как это работает не въезжаю.

И в main Check_if_orderable(arr); говорит, что arr не определён.

Понимаю, что творю фигню, но не могу остановиться. Помогите, пожалуйста. )

/* 4. Составить подпрограмму, которая проверяет заданный массив из N чисел, на упорядоченность 
по возрастанию(k = 1 - если массив упорядочен, k = 0 - иначе).
С её помощью в основной программе обработать два массива и тот, который из них не упорядочен –
обнулить(с помощью другой подпрограммы). */

#include <iostream>
using namespace std;

#define n 7 // количество чисел в массиве

void Enter_numbers();
void Check_if_orderable(int& arr); // проверить упорядочен ли массив

int main()
{
    Enter_numbers();
    
    Check_if_orderable(arr);

    return 0;
}

void Enter_numbers()
{   
    int arr[n] {}; 
    int i;
    for (i = 1; i <= n; i++)
    {
        cout << "Please enter some number " << i << " :";
        cin >> arr[i];
    }
}

void Check_if_orderable(int& arr)  
{
    int i;
    for (i = 1; i <= n; i++)
    {
        int prev, next;
        prev = arr[0];  // ошибка: выражение должно иметь тип указателя на объякт 
        next = arr[1];  // ошибка: та же  

        if (prev < next)
        {
            prev = arr[i + 1];  // ошибка: та же 
            next = arr[i + 1];  // ошибка: та же
        }

        else
        {
            cout << "This array is not orderable.";
        }
    }
}

Ответы (1 шт):

Автор решения: Mikhailo

Объявление

void Check_if_orderable(int& arr)  

означает, чтио вы передаете в функцию ссылку на int, а не указатель, как вы, вероятно, подумали (здесь & - не взятие адреса).

Вам надо просто заменить & на *:

void Check_if_orderable(int* arr)  

Так, как написано у вас - вы пытаетесь обратиться к целому числу как к массиву, что бессмысленно. Что такое третий элемент числа 5? :) Об этом и говорит компилятор - что там должен быть указатель.

→ Ссылка