数日前、インターネットから2D割り当てメモリ配列を作成する方法を学びましたが、これは完璧に機能します。配列にアクセスするには、単に使用しますが、入力や他のメソッドの代わりに表記法をmatrix[i][j]
使用して、この2D配列を逆参照できる方法はありますか?*
[]
最初の質問は解決されました私は使用できます*(*(matrix + i) + j)
別の質問があります。最後のコードセグメントは、割り当てられたメモリを解放することです(インターネットからも取得しました)が、理解できません。なぜ使用できないのdelete [] matrix
ですか?
int **matrix;
// dynamically allocate an array
matrix = new int *[row];
for (int count = 0; count < row; count++)
{
matrix[count] = new int[col];
}
// input element for matrix
cout << endl << "Now enter the element for the matrix...";
for (int i=0; i < row; i++)
{
for (int j=0; j < col; j++)
{
cout << endl << "Row " << (i+1) << " Col " << (j+1) << " :";
cin >> matrix[i][j]; // is there any equivalent declaration here?
}
}
// free dynamically allocated memory
for( int i = 0 ; i < *row ; i++ )
{
delete [] matrix[i] ;
}
delete [] matrix ;