J'écris un fichier d'en-tête simple qui peut créer un tableau 2D dynamique et mettre 0 dans la ligne et col, imprimer le tableau et supprimer le tableau. Dans le débogage lors du passage, le tableau 2d est initialisé, il place 0 là-dedans, mais quand my_array.Print_Array();Fichier d'en-tête de tableau 2D simple, échec d'impression
appelé, le compilateur l'ignore. Lorsque j'essaie d'imprimer le tableau à partir du fichier principal, il échoue. toute aide serait l'apprécier.
HEADER DOSSIER:
class twoD_Array
{
public:
int **Array;
int *col, *row;
int size_col, size_row;
twoD_Array(int, int);
~twoD_Array();
void Print_Array();
};
twoD_Array::twoD_Array(int size_c, int size_r)
{
size_col = size_c;
size_row = size_r;
Array = new int *[size_col];
for (int i = 0; i < size_col; i++)
{
Array[i] = new int[size_row];
for (int j = 0; j < size_row; j++)
Array[i][j] = 0;
}
}
void twoD_Array::Print_Array()
{
for (int y_i = 0; y_i<size_col; y_i++)
{
for (int x_i = 0; x_i<size_col; x_i++)
std::cout << Array[y_i][x_i];
std::cout << std::endl;
}
}
twoD_Array::~twoD_Array()
{
for (int i = 0; i < size_row; i++)
delete[] Array[i];
delete[] Array;
}
Fichier principal:
#include "stdafx.h"
#include <iostream>
#include "2D_Array.h"
int main()
{
int x, y;
std::cout << "how many x variables?" << std::endl;
std::cin >> x;
std::cout << "how many y variables?" << std::endl;
std::cin >> y;
twoD_Array my_array(x, y);
my_array.Print_Array();
return 0;
}
Une raison de ne pas utiliser 'std :: vector' pour gérer le tableau sous-jacent? –
WhiZTiM
Vous exécutez l'un de vos cycles imbriqués jusqu'à size_col au lieu de size_row – pergy
'lorsque j'essaie d'imprimer le tableau à partir du fichier principal, il échoue 'pouvez-vous définir _it fails_? – Yousaf