Issue : program crashing
here is my matrice.h :
class matrice {
public:
matrice(int nbColumnTMP, int nbLineTMP);
std::vector<std::vector<int>> returnArray();
virtual ~matrice();
void addValue(int numColumn, int numLine, int value);
void editValue(int numColumn, int numLine, int numValue, int newValue);
private:
std::vector<std::vector<int>>* array;
int nbColumn;
int nbLine;
};
And the .cpp :
matrice::matrice(int nbColumnTMP, int nbLineTMP) {
nbColumn = nbColumnTMP;
nbLine = nbLineTMP;
std::vector<int>* array2;
for(int C = 0; C < nbColumn; C++)
{
array->push_back(*array2);//<- DONT WORK, CRASH
for(int L = 0; L < nbLine; L++)
{
array[C][L].push_back(0); //Init matrix with 0 values
}
}
}
std::vector<std::vector<int>> matrice::returnArray()
{
return *array;
}
matrice::~matrice()
{
for(int C = 0; C < nbColumn; C++)
{
for(int L = 0; L < nbLine; L++)
{
for(int V = 0; V < int(array[C][L].size()); V++)
{
delete &array[C][L][V];
}
delete &array[C][L];
}
delete &array[C];
}
delete &nbColumn;
delete &nbLine;
delete array;
}
void matrice::addValue(int numColumn, int numLine, int value)
{
array[numColumn][numLine].push_back(value);
}
void matrice::editValue(int numColumn, int numLine, int numValue, int newValue)
{
array[numColumn][numLine][numValue] = newValue;
}
After a few tests, i found out that this make my program crash:
array->push_back(*array2);
I'm new to this so i'm not sure i'm doing things well, and i have no clue why this is not working...
I'm using this class for my 2D isometric engine, i want to load some coordinates into them to easily get isometrics coordinates after.