У меня возникают трудности с передачей динамически выделенного массива функции по ссылке. «Массив должен быть передан функции по ссылке». Моя программа должна принимать n количество целых чисел и узнать минимум. Этот минимум должен быть добавлен ко всем массивам, введенным пользователем. Но часть BY REFERENCE меня убивает. Я попробовал (int & x [], int & n), но не удалось. PLease помогите, большое спасибо.Динамически распределенный массив, передающий функцию по ссылке
void add_min(int x[], int n)
{
int add[n];
int mini = x[0];
int i;
for(i = 0; i < n; i++)
{
if(x[i] < mini)
{
mini = x[i];
}
}
for(i = 0; i < n; i++)
{
add[i] = x[i] + mini;
}
for(i = 0; i< n ; i++)
{
cout<<add[i]<<endl;
}
}
int main()
{
int *x;
int n;
cout<<"Enter the amount of integers"<<endl;
cin>>n;
x = new int[n];
cout<<"Enter the integers"<<endl;
for(unsigned i = 0; i < n; i++)
{
cin>>x[i];
}
add_min(x,n);
delete x;
return 0;
}
есть два варианта: а) использовать 'станд :: VECTOR' вместо массивов B) это домашнее задание и вам не разрешено использовать 'std :: vector', в этом случае ... ну ... вы должны использовать' std :: vector' – user463035818
Если вы используете ссылку, она должна быть ссылкой на известный размер массив, например 'void add_min (int (& x) [10], int n)'. Вы должны использовать ссылку на указатель 'void add_min (int * & x, int n)'. –
Массивы всегда передаются как ссылка, не так ли? Поэтому, если у вас есть функция, которая принимает указатель на массив, вы можете просто передать массив. Не имеет значения, является ли это '& x [0]' или 'x', поскольку они означают одно и то же. Однако я не уверен на 100%. – Zimano