@dandropov95

Можно ли сделать функцию принимающую любой двумерный массив для подсчета суммы его элементов?

В данном случае функция принимает указатель на массив из двух элементов. Можно ли сделать чтобы функция принимала массив любых размеров? Передаем любой массив, передаем кол-во строк и столбцов и считаем сумму. А то получается что функция сейчас заточена под массив конкретного размера, точнее на массив который содержит массивы константного значения, всегда только 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;
}
  • Вопрос задан
  • 102 просмотра
Пригласить эксперта
Ответы на вопрос 2
gbg
@gbg
Любые ответы на любые вопросы
(берет жестяной мегафон) Алеее, это C++
Тут есть std::vector и вообще Eigen
Ответ написан
jcmvbkbc
@jcmvbkbc
"I'm here to consult you" © Dogbert
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы