с использованием ответов от operator overloading memory leak Я добавил конструктор копирования и оператор копирования, изменил оператор +(), как сообщал NathanOliver, и теперь я перехожу к конструктору статического массива. Все еще есть утечка памяти, и странно, что я получил эту утечку памяти, даже если в основном есть только инициализация переменной класса, не имеет значения, с параметрами или нет. Любые предложения? Я думаю, что cunstructor действителен.утечка памяти при создании переменной класса
Set::Set(int n, int* array){
number = n;
elems = array;
std::sort(elems, elems + number);
}
Set::Set(const Set& s){
number=s.number;
elems=s.elems;
}
Set& operator=(const Set& X){
if(this==&X)
return *this;
delete [] elems;
elems=X.elems;
number=X.number;
return *this;
Я использую gcc (tdm64-2) 4.8.1 компилятор.
elems = X.elems просто копирует указатель, это то, что вы хотите? – KostasRim
Ваш код не обнаруживает утечки памяти, потому что вы не выделяете какую-либо динамическую память в показанном коде. Чтобы найти утечки, найдите код, который выделяет, а затем следуйте указателям. – user2079303