class C1
{
public:
C1();
~C1();
int* w1;
}
C1::C1()
{
int max = 100;
w1 = new int[max];
}
C1::~C1()
{
delete[] w1;
}
class C2
{
public:
C2();
~C2();
C1 c1;
...
}
проблемма с delete[]
Код:
Все действия с w1 происходят в C2.
В конце вываливается ошибка памяти. Было выяснено, что ошибка в деструкторе С1.
Внимание вопрос: чо за фигня? :)
Наверное, твои действия с w1, которые происходят в C2, делают что-то нехорошее... По тому коду, что ты привел, ничего сказать нельзя.
Просто расскажите, если ктото сталкивался с подобными проблеммами и от чего это вообще бывает в теории.
Собери локальный тестовый проект если все работает значит этот код работает. У тебя скорее всего проблемы с памятью где то в другом месте просто вываливается в деструкторе.
RedNN, вот для того то и не надо делать w1 публичным указетелем, чтобы левый класс C2 мог с ним что то напортачить так, что в родном классе деструктор вывалиться. Кто вас так проектировать учил?
Цитата: RedNN
я понимаю, что по этому коду мало чего понятно, но если я приведу всю прогу, от этого не станет легче (было уже такое).
Просто расскажите, если ктото сталкивался с подобными проблеммами и от чего это вообще бывает в теории.
Просто расскажите, если ктото сталкивался с подобными проблеммами и от чего это вообще бывает в теории.
Такое в теории бывает много от чего, но если начать перечислять, от этого не станет легче (было уже такое).
e-XperT - спасибо. Из всех "экспертов" чтото стоящее прозвучало только от тебя. Ошибка была совсем не в этом куске.