Search code examples
c++arraysfunction2d

C++ - Passing 2D array to function


I am trying to pass a 2D array to a function but I am failing to do so. There is no problem with passing 1D array. How can I do this?

#include <iostream>
    
    using namespace std;
    
    void DisplayBoard(int matrix[],int n) // Prints out the given array.
    {
            for (int j = 0; j < n; j++)
            {
                    cout << matrix[j];
            }
    }
    
    int main()
    {
        int n,m;
        cin>>n;
        //int matrix[n]={};
        DisplayBoard(matrix,n);
        return 0;
    }

Solution

  • You should input the index number (n) and the array object from the user. Here is a edited version of your code

    #include <iostream>
    using namespace std;
    
    void DisplayBoard(int matrix[],int n) // Prints out the given array.
    { 
      cout<<endl ; 
         for (int j = 0; j < n; j++)
          {
                  cout << matrix[j]<<" ";
           }
        }
    
         int main() {
           int n,m;
             cin>>n ; 
             int matrix[n];
      
             for(int i=0;i<n;i++) {
                cin>>matrix[i];
                   } 
                 DisplayBoard(matrix,n);
              return 0;
            }
    

    Remember to declare an array in the main function too, that was one of the errors in your code!

    Also, it is incorrect to declare an array like this:

    int matrix[n]={}