Функция и динамический массив

Написать функцию для нахождения суммы чисел в каждой строке двумерного динамического массива. Как я исполнил, и если не трудно покажите как должно быть,если есть ошибки.

#include <iostream>

using namespace std;

int sum(int v1, int v2, int iP[]);

void main()
{
    int v1, v2;
    int *iP;
    v1 = v2 = 0;
    cout << "Enter size";
    cin >> v1 >> v2;
    iP = new int[v1 * v2];
    for (int i = 0; i < v1; i++)
        for (int j = 0; j < v2; j++)
            cin >> *(iP + i * v2 + j);
    cout << sum(v1, v2, iP);
    delete[] iP;
    system("pause");
}

int sum(int v1, int v2, int *iP)
{
    int s;
    s = 0;
    for (int i = 0; i < v1; i++)
        s = s + *(iP + i);
    cout << "Сумма чисел в каждой строке:" << endl;
    return s;
}

Ответы (1 шт):

Автор решения: Majestio

Как я исполнил, и если не трудно покажите как должно быть

Если вы уж используйте метку c++, старайтесь пользоваться средствами стандартной библиотеки. Не зря же ее так старательно создавали. Выбирайте правильно типы, выбирайте правильно механизмы обработки.

Вот пример подобной реализации. Прошу обратить внимание на то, что подготовительные операции (создание и заполнение двумерного массива) занимают большую часть решения. А само суммирование - просто до безобразия:

#include <iostream>
#include <valarray>
#include <vector>

using MatrixType = std::vector<std::valarray<int>>;

int main() {
  size_t Row = 2;
  size_t Column = 5;
  // объявление матрицы
  MatrixType M;
  M.reserve(Row);
  // заполнение матрицы
  for (size_t i = 0; i < Row; i++) {
    std::valarray<int> Tmp(Column);
    for (size_t j = 0; j < Column; j++)
      Tmp[j] = (i + 1) * (j + 1);
    M.push_back(Tmp);
  }
  // печать матрицы
  for (auto&& i : M) {
    for (auto&& j : i)
      std::cout << j << ' ';
    std::cout << std::endl;
  }
  std::cout << "Суммы:" << std::endl;

  // собственно расчет суммы и печать - неправда ли прекрасно? :-)

  for (auto&& i : M)
    std::cout << i.sum() << std::endl;
  return 0;
}

Ссылка на онлайн исполнение

→ Ссылка