Функция return для динамических массивов. - C (СИ)
Формулировка задачи:
Подскажите пожалуйста, как вызвать значения динамического массива из одной функции в главную?
Т.е. в функции main() вводится одномерный массив, затем значения массива передаются в другую функцию, там происходит их преобразование (не суть какое) и полученные значения снова возвращаются в функцию main(). На экране должен отображаться ряд значений...
Решение задачи: «Функция return для динамических массивов.»
textual
Листинг программы
double* lol(double *A, int n) { int i; double *U,t; U=(double*)malloc(n*sizeof(double)); for(i=0;i<n;i++) U[i]=rand(); for(i=0;i<n;i++) { A[i*n+i] = U[i]; } return U; } int main() { double *A, *B; int n; int i, j; A=(double*)malloc((n*n)*sizeof(double)); printf("Введите размер матрицы А:\nn = "); scanf("%d", &n); printf("Введите элементы матрицы А:"); for(i=0;i<n;i++) { for(j=0;j<n;j++) { printf("\nA[%d][%d] = ", i,j); scanf("%lf", &A[i*n + j]) } } // B=(double*)malloc(n*sizeof(double)); B=lol(A, n); return 0; }
Объяснение кода листинга программы
- В функции lol() используется динамический массив (double *U), который выделяется с помощью функции malloc().
- В цикле for заполняются значениями динамического массива U.
- В цикле for элементы динамического массива U присваиваются элементам матрицы А.
- В функции main() используется динамический массив (double *A), который выделяется с помощью функции malloc().
- С помощью функции scanf() пользователь вводит размер матрицы А и её элементы.
- Вызывается функция lol(), в которую передаются матрица А и её размер.
- В функции lol() возвращается динамический массив U.
- В функции main() возвращается 0, завершая работу программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д