Искал ответ, и не понимаю почему так может быть.Вот цитата с источника:
В первом примере этого урока мы передавали в функцию аргументы по значению. Это значит, что когда функция вызывается, ей передаются в качестве фактических параметров (аргументов) не указанные переменные, а копии значений этих переменных. Сами переменные к этим копиям уже никакого отношения не имеют. В вызываемой функции эти значения присваиваются переменным-параметрам, которые, как известно, локальны. Отсюда следует, что изменение переданных значений никакого влияния на переменные, переданные в функцию при вызове, не оказывают.
void input_array(int n, double *array) {
//Ввод элементов массива
for (int i = 0; i < n; i++) {
cout << "(Ввод массива) M[" << i << "] : ";
cin >> array[i];
}
}
int main() {
int count;
int n;
cout << "Введите колчество элементов. n : ";
cin >> n;
double array[n-1]; //Обьявление массива с заданным количеством n
cout << endl << n << endl;
input_array(n, array);
cout << endl << n << endl;
return 0;
}
Первоначально, вводим, например 3
Первый вывод дает, как и должно быть 3
Второй дает рандомное значение.