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;
}
Если что, задача состоит в том, что бы через функцию сделать перебор массива на наличие совпадения с числом, и вывести на экран количество совпадений.Используя при этом указатель на массив.
int *A
в декларации означает: "A это указатель на int"
У вас есть переменная A
,тип ее - int *
. В ней хранится какой-то адрес.
Выражение A
это адрес, или указатель. Оно подходит для типа аргумента функции, которую вы вызываете.
Выражение *A
это само значение, которое лежит в памяти по этому адресу.
Функция требует не значение, а адрес, а вы пытаетесь передать в нее значение. В данном случае - значение первого элемента массива, то есть 0.
Система типов C++ не позволяет вам этого сделать, было бы ошибкой интерпретировать целочисленное значение как адрес.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Раньше я думал что динамическая память нужна для того чтобы выделять там память под массивы типов, размер которых не известен во время компиляцииСейчас...
Напишите функцию, которая принимает на вход два числа, и возвращает сумму всех чисел между ними, которые делятся на 5 или на одно из этих...
Я разделил свою программу на три файлаВсе они находятся в одной папке и запускаются в компиляторе g++ как g++ main