SO [C内のポインタの2次元アレイが++どのように割り当てること] [1]、受け入れ答えも縮小する方法の正しい手順のメモを行い、問題のその配列を割り当て、削除します。つまり、含まれているポインタ、行配列、列配列をすべて別々に正しい順序で削除するよう注意してください。したがって、私はセルオートマトンシミュレーションプログラムでこの2Dアレイをうまく使用しています。しかし、私はこの配列のメモリ管理を正しくすることはできません。私は上記の参照以外のこれを行う方法のためのSOの答えが表示されません。明らかC++オブジェクトへのポインタの2次元配列の割り当てを解除し、削除する方法
for (int i = 0; i < rows; i++) {
for (int j = 0; j < cols; j++) {
matrix_0[i][j] = NULL;
}
}
delete [] matrix_0;
matrix_0 = NULL;
:
Object*** matrix_0 = new Object**[rows];
for (int i = 0; i < rows; i++) {
matrix_0[i] = new Object*[cols];
}
マイ無益試み(複数可)を適切に解除割り当てる以下の通りである上記アレイ(Valgrindのに応じて)次のよう
私は2次元配列を割り当てます参照[1]が示唆しているように、行と列の一部が欠落しています。私が見逃していることを私に見せてもらえますか?前もって感謝します。
[1]:(2009年11月20日)How to allocate a 2D array of pointers in C++
'std :: vector> vector_of_objects; –
SergeyA
オブジェクトの2次元配列またはポインタの2次元配列に慣れていますか? –
@ R Sahu:基本クラスオブジェクトへのポインタの2D配列で、さまざまなセルオートマトン由来オブジェクトの多態的な振る舞いを利用するように設定されています。 – Chris