Il y a quelques jours, j'ai appris sur internet comment créer des tableaux de mémoire allouée en 2D, cela fonctionne parfaitement. Pour accéder au tableau, il suffit d'utiliser matrix[i][j]
Cependant, existe-t-il un moyen de déréférencer ce tableau 2D en utilisant la fonction *
au lieu de la notation []
pour les contributions ainsi que d'autres méthodes ?
La première question est de savoir si je peux utiliser *(*(matrix + i) + j)
Maintenant j'ai une autre question, le dernier segment de code est pour libérer la mémoire allouée (je l'ai eu sur internet aussi), mais je ne le comprends pas, pourquoi je ne peux pas juste utiliser 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 ;