2013-10-29 48 views
-1

我創建了一個動態數組。訪問2d動態數組的元素 - C++

typedef float* DynamicMatrix[MAT_SIZE]; 
DynamicMatrix matDyn; 
// allocate rows and initialize to 0 
    for (r = 0; r < MAT_SIZE; r++) { 
     matDyn[r] = new float[MAT_SIZE]; 
     for (c = 0; c < MAT_SIZE; c++) { 
      (matDyn[r])[c] = 0; // IS THIS CORRECT??? 
     } 
    } 

整個想法是,我創建了一個指針數組,這是我創建的矩陣的脊柱。該脊椎是矩陣的最左邊垂直部分。這個數組的每一行都會指向另一個浮點數組,因此使它成爲一個動態二維數組。 我不確定如何訪問此矩陣的元素。請讓我知道如何。

+0

爲什麼不使用'std :: vector'或'boost :: multi_array'? – Kunal

+0

我正在創建這個作業,需要我使用這種動態數組 – tmacnadidas

+0

'matDyn [r] [c] = 0;'也不錯 – SHR

回答

1

你可以像一個 「正常」 的矩陣訪問:

matDyn[r][c]

+0

當我使用同樣的方法設置元素時,我得到了分段錯誤11。 – tmacnadidas

-1

您只需通過陳述matDyn [R] [C]

我的錯誤是,在我的程序後(未顯示),我試圖設置matDyn [MAT_SIZE] [MAT_SIZE]這」不是個訪問t可能(它只能是matDyn [MAT_SIZE-1] [MAT_SIZE-1]),這就是我得到分割錯誤的原因。