J'ai donc regardé quelques questions en ligne pour comprendre comment configurer et remplir un tableau multidimensionnel dynamique et je pensais que je l'avais perdu, mais pour une raison quelconque, ma fonction n'accèdera à rien après le premier (0) colonne. Pour mon test, je mets dans un tableau de 2X2:En boucle dans une matrice allouée dynamiquement
2 2 (part of another function that gives the size of the matrix) 1 2 3 4
Quand je débugger je reçois seulement
1 random# from initializing the array 3 random# from initializing the array
Je ne suis pas sûr de ce que je fais mal avec ce morceau de code, je suis aussi nouveau en C++.
double* matrix_read(const int m, const int n)
{
double **mat = new double*[m];
for (int j = 0; j < m; ++j) {
mat[j] = new double[n];
}
for (int i = 0; i < m; ++i) {
for (int j = 0; j < n; ++j) {
cin >> mat[i][j];
}
}
double debug = mat[2][2];
return *mat;
}
A l'intérieur de la fonction principale, c'est ce que j'envoie à la fonction.
int x, y, m, n;
cin >> x;
cin >> y;
double *mat_a = matrix_read(x, y);
cin >> m; //2nd matrix read in
cin >> n;
double *mat_b = matrix_read(m, n);
Post un peu plus de code – P0W
@ P0W J'ai ajouté l'appel de fonction et comment je passe les paramètres à la fonction. Le (double debug = mat [2] [2]) était une sortie de débogage que j'ai essayé de lire et j'ai eu une erreur. – Motorscooter
Vous ne renvoyez que la première ligne de la matrice 'return * mat 'au lieu de la matrice entière. En plus 'mat [2] [2]' est un accès hors limites pour votre tableau 2x2. – aslg