У меня есть массив указателей, которые указывают на массивы целых.Я сделал жестко запрограммированный массив целых (проверьте «массив» ниже), и я хочу вставить его в массив указателей (проверьте «бар» ниже), насколько я могу судить, это все еще массив указателей, которыеуказывают на массивы целых чисел.
Компилируется нормально;предупреждений нет.Работает нормально;и закрывается нормально;По крайней мере, пока я не введу закомментированный оператор удаления в деструкторе.
Я полагаю, что мой компилятор сделает лучший деструктор на этом этапе, но мне интересно, что я делаю неправильно.Окно терминала просто выбрасывает гигантскую карту памяти;и поиск в Google так и не помог.
class foo {
public:
int **bar;
int aSize;
//CONSTRUCTOR
foo(int aSize) {
this->aSize = aSize;
bar = new int*[aSize];
for (int i=0;i<aSize;i++) {
bar[i] = new int[aSize + i];
for (int j=0;j<(aSize + i);j++) {
bar[i][j] = 0;
}
}
}
void myfunc(int *pointer) {
bar[0] = pointer;
}
~foo() {
for (int i=0;i<aSize;i++) {
//delete[] bar[i];
}
delete[] bar;
}
};
int main() {
foo *obj = new foo(5);
int array[] = {1,2,3,4};
obj->myfunc(array);
delete obj;
return 0;
};
Я знаю, что, вероятно, совершил что-то трагическое;Я просто еще не знаю что это.Есть причина, по которой я не использую STL или другие шаблоны, это просто потому, что я заинтересован в изучении этого.Максимальная критика приветствуется.