2012-12-17 39 views
0

的功能我已經創建了一個多維動態數組這樣如何通過多維動態數組在C++

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

for(int i = 0; i < N; i++) 
hap[i] = new bool[N]; 

,它似乎做工精細,但我需要這個數組傳遞給函數...

我應該怎麼做?

謝謝

回答

2

按照您聲明的那樣傳遞;作爲布爾**。下面是一個示例的定義:

void myFunc(bool** param) 
{ 
    // Do stuff with param here, indexing it normally 
} 

然後,你可以調用函數像這樣:

myFunc(hap); 
1

從本質上說,the same as for returning a multi-dimensional array applies

  1. 請不要在這裏使用指針和原始內存管理。
  2. 傳遞表示由(常數)參考陣列的對象:
void f(matrix_2d const& mat) { 
    // do something. 
} 

matrix_2d mat = { {1, 2}, {3, 4} }; 
f(mat); 

對於matrix_2d適當定義 - 例如:

using matrix_2d = std::vector<std::vector<int>>; 

(這些代碼需要C++ 11但原則上在原則上相同。)