В данном случае функция принимает указатель на массив из
двух элементов. Можно ли сделать чтобы функция принимала массив любых размеров? Передаем любой массив, передаем кол-во строк и столбцов и считаем сумму. А то получается что функция сейчас заточена под массив конкретного размера, точнее на массив который содержит массивы константного значения, всегда только 2.
#include <stdio.h>
#include <conio.h>
#define ROWS 3
#define COLS 2
int sum(const int(*arr)[COLS], int rows, int cols);
int main(void)
{
const int arr[ROWS][COLS] = { { 1, 2 }, { 3, 4 }, { 5, 6 } };
printf("%d", sum(arr, ROWS, COLS));
_getch();
return 0;
}
int sum(const int (*arr)[COLS], int rows, int cols)
{
int total = 0;
for (int i = 0; i < rows; i++)
for (int j = 0; j < cols; j++)
total += *(*(arr + i) + j);
return total;
}