Передать массив в функцию по ссылке - C (СИ)

Узнай цену своей работы

Формулировка задачи:

#include <cstdlib>
#include <iostream>
 
using namespace std;
 
int FindMax(int *Arr,int *Count);
 
int main(int argc, char *argv[])
{
    int *a;
    int i, n;
    printf("Enter n: ");
    scanf("%d",&n);
    a=(int*) malloc(n*sizeof(int));
     for (i=0;i<n;i++)
      {
       printf("Enter a[%d]: ",i);
       scanf("%d",&(a[i]));
      }
    FindMax(a,&n);
    system("PAUSE");
    return EXIT_SUCCESS;
}
 
int FindMax(int Arr[],int *Count)
  {
   for(int i=0;i<*Count;i++)
     {
       printf("a[%d]: %d\n",i,*Arr[i]);//тут ругается
     }
  }
Переменную разобрался как передать,а вот с указателем на массив.. Переведите ругань компилятора. Обьясните плиз что я не так делаю. p.s.Может нужен не цикл,а итерация по указателю?

Решение задачи: «Передать массив в функцию по ссылке»

textual
Листинг программы
*(arr + i)

Объяснение кода листинга программы

В данном коде происходит передача массива в функцию по ссылке. Список выражений в коде:

  1. arr - переменная, которая содержит указатель на начало массива.
  2. i - переменная, которая содержит индекс элемента массива.
  3. (arr + i) - выражение, которое вычисляет новый адрес массива, используя старый адрес arr и добавляет к нему индекс i. В результате выполнения данного кода, функция получит массив по ссылке и сможет работать с его элементами, используя полученный адрес и индексы.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

7   голосов , оценка 4.571 из 5
Похожие ответы