I tried same program for C & C++ i.e. passing 2D array to a function. The following program is working in C, but not working in C++, Please explain why so ?
IN C
#include<stdio.h>
void pass(int n, int arr[][n]) // or void pass(int n, int (*arr)[n])
{
printf("%d",arr[0][0]);
//.....
}
int main()
{
int n;
scanf("%d",&n);
int arr[n][n];
arr[0][0]=0;
pass(n,arr);
return 0;
}
IN C++
#include <bits/stdc++.h>
using namespace std;
void pass(int n, int arr[][n]) // or void pass(int n, int (*arr)[n])
{
cout << arr[0][0];
//.....
}
int main()
{
int n;
cin >> n;
int arr[n][n];
arr[0][0]=0;
pass(n,arr);
return 0;
}
3:29:error: use of parameter outside function body before ']' token void pass(int n, int arr[][n]) // or void pass(int n, int (*arr)[n])
6:9:error: 'arr' was not declared in this scope cout << arr[0][0];*