Другие языки программирования и технологии

Массив как аргумент функции C++

>Как вместо (int* Arr правильно обозначить массив?
а как вы его инициализировали?
это указатель на область памяти со значениями массива

и лучше так
int length = sizeof(Arr) / sizeof(int);
посмотрите, чем у вас равен length

далее. . умножать int на float и приведить к int - у вас будет потеря точности (например 34*100.0 даст, скорее всего, 3399)

>т. е. int *Arr видит не как массив, а только его первое число
значит передаете не так или не так определяете массив - говорю же, покажите как определяете его и как вызываете функцию

>Определил как обычный массив:
дык. . по одному указателю размер то узнать нельзя
указатель указывает на начало области памяти, где хранится информация
сколько она занимает - из указателя не выяснить.
Сергей Балло
Сергей Балло
74 893
Лучший ответ
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>

void chg_arr (float *arr, size_t arr_size, float coef)
{
size_t i;
for (i = 0; i < arr_size; i++ )
arr[ i ] = arr[ i ] * coef;
}

int main (void)
{
int j = 0;
size_t arr_size = 10, i = 0;
float *arr = (float *) malloc (sizeof(float) * arr_size);

for (; i < arr_size; i++)
{
j = j + 2;
arr[ i ] = j;
printf("%6.1f", arr[ i ]);
}

chg_arr(arr, arr_size, 3.4);
putch('\n');

for (i = 0; i < arr_size; i++)
printf("%6.1f", arr[ i ]);

getch();
return 0;
}
MA
Mutal Abdillaev
11 082