Помогите понять в чем проблема с функцией [закрыт]

138
03 ноября 2019, 22:20

Oшибка: invalid conversion from ‘int’ to ‘int*’ [-fpermissive] Function1(*A,x,k)

#include <iostream>
using namespace std;
int Function1(int *A, int x, int k)
{
    for(int i = 0; i < 6; i++)
    {  
        *A++;
        if (*A == x)
        {
            k = k + 1;
        }
    }
    return 0;
}
int main()
{
    int k;
    int x = 15;
    int Arr[6] = {0, 15, 15, 35, 15, 20};
    int *A = Arr;
    Function1(*A, x, k);
    cout << k << endl;
    return 0;
}

Если что, задача состоит в том, что бы через функцию сделать перебор массива на наличие совпадения с числом, и вывести на экран количество совпадений.Используя при этом указатель на массив.

Answer 1

int *A в декларации означает: "A это указатель на int"

У вас есть переменная A,тип ее - int *. В ней хранится какой-то адрес.

Выражение A это адрес, или указатель. Оно подходит для типа аргумента функции, которую вы вызываете.

Выражение *A это само значение, которое лежит в памяти по этому адресу.

Функция требует не значение, а адрес, а вы пытаетесь передать в нее значение. В данном случае - значение первого элемента массива, то есть 0.

Система типов C++ не позволяет вам этого сделать, было бы ошибкой интерпретировать целочисленное значение как адрес.

READ ALSO
Вычислить 1*2 + 2*3*4 + 3*4*5*6 +

Вычислить 1*2 + 2*3*4 + 3*4*5*6 +

Мне нужно вычислить 1*2 + 2*3*4 + 3*4*5*6 +

134
Зачем нужна динамическая память

Зачем нужна динамическая память

Раньше я думал что динамическая память нужна для того чтобы выделять там память под массивы типов, размер которых не известен во время компиляцииСейчас...

153
Как подойти к решению такой задачи? [закрыт]

Как подойти к решению такой задачи? [закрыт]

Напишите функцию, которая принимает на вход два числа, и возвращает сумму всех чисел между ними, которые делятся на 5 или на одно из этих...

143
Свой header(.h) и компиляция нескольких файлов [закрыт]

Свой header(.h) и компиляция нескольких файлов [закрыт]

Я разделил свою программу на три файлаВсе они находятся в одной папке и запускаются в компиляторе g++ как g++ main

148