class Celda
{
private:
int* bloques_;
public:
Celda(int size);
~Celda(){ delete [] bloques_; };
};
Celda :: Celda(int size)
{
bloques_ = new int[size];
bloq_ocupados_ = 0;
tam_ = size;
for(int i = 0 ; i < tam_ ; ++i){
bloques_[i] = 0;
}
}
Tabla :: Tabla(int numcel, int tambloq)
{
nceldas_ = numcel; tam_bloque_ = tambloq;
tabla_ = new Celda*[nceldas_];
for(int i = 0 ; i < nceldas_ ; ++i){
tabla_[i] = new Celda(tam_bloque_);
}
ocupadas_ = 0;
}
Tabla :: ~Tabla()
{
for(int i = 0 ; i < nceldas_ ; ++i){
delete [] tabla_[i];
}
delete [] tabla_;
}
У меня есть это закодированное сейчас, 2 класса, Celda и Tabla, и когда я запускаю свою программу, она ставит в конец:
* Обнаружен glibc: free (): invalidad pointer: 0x0000000002391338 *
Отладчик слишком часто прекращает удаление указателя bloques_ (например, 30), вызывая деструктор.
В чем моя ошибка ??