Как передать двумерный массив в функцию? - C (СИ)
Формулировка задачи:
void func(float *mas, int x, int y)
{
..
for (i=0; i<10; i++)
printf ("%d",mas[0]);
}
int main()
{
int x=10, y=80;
float a[10][80];
..
scanf(fin,"%f",&a[0][i])
..
func(a,x,y);
}Решение задачи: «Как передать двумерный массив в функцию?»
textual
Листинг программы
#include <stdio.h>
#include <conio.h>
const int arraySize = 3;
void func(float **mas, int x, int y)
{
for (int i=0; i<arraySize; i++)
printf ("%f ",mas[i][i]);
}
int main()
{
float **arr = new float*[arraySize];
for(int k=0; k < arraySize; k++)
arr[k] = new float[arraySize];
for (int i=0; i<arraySize; i++)
{
for (int j=0; j<arraySize; j++) scanf("%f",&arr[i][j]);
}
func(arr,x,y);
getch();
return 0;
}
Объяснение кода листинга программы
В этом коде объявлена функция func, которая принимает двумерный массив mas размером arraySize и выводит на экран значения элементов массива. В функции main создается двумерный массив arr размером arraySize динамически при помощи оператора new. Затем в цикле происходит заполнение элементов массива значениями с клавиатуры при помощи функции scanf. После этого вызывается функция func с передачей в нее массива arr, а также значений переменных x и y. В конце программы вызывается функция getch для получения от пользователя ввода и программа завершается возвратом значения 0.