Передача двумерного массива в функцию С++

Не могу разобраться с тем как передавать двумерные массивы в функцию в С++.Использую DevCpp.

int main()
{
    unsigned int lines = 0, columns = 0;
    cout << "Input number of lines: ";
    cin >> lines;
    cout << "Input number of columns: ";
    cin >> columns;
    
    int matrix[lines][columns];
    
    cout << "Input matrix values (int)" << endl;
    for(int i = 0; i < lines; i++)
    {
        for(int j = 0; j < columns; j++)
        {
            cout <<"matrix["<<i<<"]["<<j<<"]=";
            cin >> matrix[i][j];
        }
    }
    
    cout << FindMaxNumOfZeroInLine(&matrix[0][0], lines, columns) << endl;
    
    return 0;
}

int FindMaxNumOfZeroInLine(int *matrix, unsigned int lines, unsigned int columns)
{
    int maxZeroNum = 0, imaxZeroNum = 0, zeroCount;
    for (int i  = 0; i < lines; i++)
    {
        zeroCount = 0;
        for(int j = 0; j < columns; j++)
        {
            if( matrix[i][j] == 0)zeroCount++;
        }
        if(maxZeroNum<zeroCount)imaxZeroNum = i;
    }
    return imaxZeroNum;
}

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

Автор решения: CHICOTILA
#include <iostream>

using namespace std;

int FindMaxNumOfZeroInLine(int **matrix, unsigned int lines, unsigned int columns)
{
    int maxZeroNum = 0, imaxZeroNum = 0, zeroCount;
    for (int i  = 0; i < lines; i++)
    {
        zeroCount = 0;
        for(int j = 0; j < columns; j++)
        {
            if( matrix[i][j] == 0 ){
                zeroCount++;
            }
        }
        if(maxZeroNum<zeroCount)imaxZeroNum = i;
    }
    return imaxZeroNum;
}

int main()
{
    unsigned int lines = 0, columns = 0;
    cout << "Input number of lines: ";
    cin >> lines;
    cout << "Input number of columns: ";
    cin >> columns;

    //int matrix[lines][columns];
    int ** matrix = new int * [lines];
    for(int i = 0; i < columns; ++i)
    {
        matrix[i] = new int[columns];
    }

    cout << "Input matrix values (int)" << endl;
    for(int i = 0; i < lines; i++)
    {
        for(int j = 0; j < columns; j++)
        {
            cout <<"matrix["<< i << "][" << j <<"]=";
            cin >> matrix[i][j];
        }
    }

    cout << FindMaxNumOfZeroInLine(matrix, lines, columns) << endl;

    return 0;
}
→ Ссылка