Я прочитал, как передавать 2-D массивы в функцию в качестве параметра, и попытался реализовать то же самое. Я столкнулся с двумя проблемами:
1) Первая строка вывода кода содержит значение мусора. 2) Что на самом деле делает строка ((arr + i n) + j)? Я имею в виду, почему мы не можем сделать что-то вроде ( (arr + i) + j) для доступа к arr [i] [j]?
Я также попытался передать матрицу с помощью параметра int ** arr, а затем попытался напечатать значение как arr [i] [j], но не было никакого вывода.
Вот вывод, который я получаю: -
Enter number of nodes: 4
0167772161878012032-1
0000
0000
0000
И вот мой код: -
#include <iostream>
using namespace std;
void show(int* arr, int n)
{
int i, j;
for(i = 0; i < n; ++i)
{
for(j = 0; j < n; ++j)
{
cout << *((arr + i*n) + j);
}
cout << endl;
}
}
int main()
{
int n, i, j;
cout << "Enter number of nodes: ";
cin >> n;
int arr[n][n] = {{0}}; //Will initialize all elements in the matrix with 0.
show((int*)arr, n);
}