Impossible d'accéder à un tableau 2D que j'ai créé dans le constructeur dans la fonction de classe printMatrix. Quand j'appelle la fonction en main avec une cout < < "test" simple; ça va imprimer ça. Si j'essaie d'imprimer les valeurs de matrixArray [] [], il n'imprime rien et quitte le programme. Est-ce que je ne fais pas référence au tableau 2d correctement?Référencement d'un tableau 2d dans une fonction de classe en C++
class matrix
{
int **matrixArray;
public:
int matrixSize = 0;
matrix(int matrixSize);
void printMatrix();
void makeMagicSquare();
};
matrix::matrix(int const matrixSize)
{
this->matrixSize = matrixSize ;
int** matrixArray = new int*[matrixSize];
for(int i = 0; i<matrixSize; i++){
matrixArray[i] = new int[matrixSize];
}
for(int row = 0; row < matrixSize ;row++)
{
for(int col = 0; col < matrixSize; col++)
{
matrixArray[row][col] =0;
cout << matrixArray[row][col] << " ";
}//End for Col
cout << endl;
}//End for Row
}
//printMatrix Function
void matrix::printMatrix(){
for(int row = 0; row < matrixSize;row++)
{
for(int col = 0; col < matrixSize; col++)
{
cout << "test" << " ";
//Not able to print from print function
cout << matrixArray[row][col] << endl;
}// end col
cout << endl;
}//end row
}
Vous devriez vraiment stocker la matrice dans un vecteur unidimensionnel. – NathanOliver
quelqu'un va-t-il vous claquer si vous utilisez 'vector>' à la place? –
@ Jean-FrançoisFabre Seulement quelqu'un qui se soucie beaucoup de la localisation du cache. Les vecteurs 1D sont meilleurs. – vsoftco