Передать массив в функцию по ссылке - 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]);//тут ругается
}
}Решение задачи: «Передать массив в функцию по ссылке»
textual
Листинг программы
*(arr + i)
Объяснение кода листинга программы
В данном коде происходит передача массива в функцию по ссылке. Список выражений в коде:
arr- переменная, которая содержит указатель на начало массива.i- переменная, которая содержит индекс элемента массива.(arr + i)- выражение, которое вычисляет новый адрес массива, используя старый адресarrи добавляет к нему индексi. В результате выполнения данного кода, функция получит массив по ссылке и сможет работать с его элементами, используя полученный адрес и индексы.