Search
 
SCRIPT & CODE EXAMPLE
 

CPP

passing a 2d array cpp

#include <iostream>
#include <vector>
using namespace std;

typedef vector< vector<int> > Matrix;

void print(Matrix& m)
{
   int M=m.size();
   int N=m[0].size();
   for(int i=0; i<M; i++) {
      for(int j=0; j<N; j++)
         cout << m[i][j] << " ";
      cout << endl;
   }
   cout << endl;
}


int main()
{
    Matrix m = { {1,2,3,4},
                 {5,6,7,8},
                 {9,1,2,3} };
    print(m);

    //To initialize a 3 x 4 matrix with 0:
    Matrix n( 3,vector<int>(4,0));
    print(n);
    return 0;
}
Comment

passing 2d array in c++ in function

If you are using GCC, then you are to pass the length of the array as a parameter to the function.

void foo (int m, int arr[][m]) {
    //...
}
However, there seems to be a bug in either the compiler or the documentation, as the above function prototype syntax only works when compiling C code, not C++ (as of gcc version 4.8.2). The only work-around I found was to use a void * parameter, and cast it int the function body:

int foo_workaround (int m, void *x)
{
    int (*arr)[m] = static_cast<int (*)[m]>(x);
    //...
}
There are other solutions if you do not want to rely on a compiler extension. If you don't mind a separate allocation for each row, you can use a vector of vectors, for example:

std::vector<std::vector<int> > arr(n, std::vector<int>(m));
Comment

PREVIOUS NEXT
Code Example
Cpp :: how to implement stack 
Cpp :: Casino Number Guessing Game - C++ 
Cpp :: c++ max and min of vector 
Cpp :: pointers in c++ 
Cpp :: c++ multi-dimensional arrays 
Cpp :: c++ shift array to the right 
Cpp :: priority queue using heap 
Cpp :: conditions in c++ 
Cpp :: template function in class c++ 
Cpp :: c++ for 
Cpp :: sum function in c++ 
Cpp :: imgui menu bar 
Cpp :: cpp set time 
Cpp :: opengl text rendering with 3d rendering 
C :: c colourful output 
C :: Write a C program to print all unique elements in the array. 
C :: printf format specifiers 
C :: get_session` is not available when using TensorFlow 2.0. 
C :: express.static public 
C :: prime chec kin c 
C :: C program to display fibonacci serice 
C :: determination of armstrong number in c 
C :: lldb set breakpoint function name 
C :: how to print the first character of a string in c 
C :: Graphics in C Draw Circle 
C :: CL/cl.h: No such file or directory 
C :: c memset 
C :: read from stdin c 
C :: prime factorization of factorials using c 
C :: c program to find the frequency of characters in a string 
ADD CONTENT
Topic
Content
Source link
Name
8+8 =