C++ 如何将多维动态数组传递给c++;

C++ 如何将多维动态数组传递给c++;,c++,function,multidimensional-array,C++,Function,Multidimensional Array,我创建了一个多维动态数组,如下所示 int N; cin >> N; bool ** hap = new bool*[N]; for(int i = 0; i < N; i++) hap[i] = new bool[N]; intn; cin>>N; bool**hap=新bool*[N]; 对于(int i=0;i

我创建了一个多维动态数组,如下所示

int N;
cin >> N;
bool ** hap = new bool*[N];

for(int i = 0; i < N; i++)
hap[i] = new bool[N];
intn;
cin>>N;
bool**hap=新bool*[N];
对于(int i=0;i
它似乎工作得很好,但我需要将这个数组传递给一个函数

我该怎么做


谢谢

照你说的那样传递它;作为一个傻瓜**。下面是一个示例定义:

void myFunc(bool** param)
{
    // Do stuff with param here, indexing it normally
}
然后您可以这样调用函数:

myFunc(hap);

照你说的那样传递它;作为一个傻瓜**。下面是一个示例定义:

void myFunc(bool** param)
{
    // Do stuff with param here, indexing it normally
}
然后您可以这样调用函数:

myFunc(hap);
本质上

  • 这里不要使用指针和原始内存管理
  • 通过(常量)引用传递表示数组的对象:
  • 对于矩阵的适当定义,例如:

    using matrix_2d = std::vector<std::vector<int>>;
    
    使用矩阵_2d=std::vector;
    
    (这段代码需要C++11,但之前原则上也是如此。)

    本质上

  • 这里不要使用指针和原始内存管理
  • 通过(常量)引用传递表示数组的对象:
  • 对于矩阵的适当定义,例如:

    using matrix_2d = std::vector<std::vector<int>>;
    
    使用矩阵_2d=std::vector;
    
    (这段代码需要C++11,但原则上以前也是如此。)