Доброго времени суток, возникла проблема с освобождением памяти. Весь код цельный копипастить не буду,вот элементарная часть в которой уже присутствует ошибка :
vector<Circle*> vector;
for (int i = 0; i < vector.size(); i++)
{
delete vector[i];
}
vector.clear();
Однако при проверке через Valgrind уже появляется ошибка, в которой говорится:
total heap usage: 1 allocs, 0 frees
Также пробовал чинить это через swap - не помогло.Так как очистить полностью эти магические вектора ?
UPD : более полная версия кода
vector<Circle*> vector;
int k ;
bool exit = false;
while(!exit)
{
cin>>k;
if (k == 1)
{
for (int i = 0; i < vector.size(); i++)
{
cout<<vector[i]->GetName()<<" ";
cout<<vector[i]->GetR()<<" ";
cout<<"("<<vector[i]->GetX()<<"; "<<vector[i]->GetY()<<"; "<<vector[i]->GetZ()<<")"<<endl;
}
}
else if (k == 2)
{
int x,y,z,R;
string name;
cout<<"Введите поля шара:"<<endl;
cout<<"x: ";
cin>>x;
cout<<"y: ";
cin>>y;
cout<<"z: ";
cin>>z;
cout<<"R: ";
cin>>R;
cout<<"name: ";
cin>>name;
Circle * p = new Circle (x,y,z,R,name);
vector.push_back(p);
}
else if (k == 3)
{
int x,y,z;
cout<<"Введите координаты точки:"<<endl;
cout<<"x: ";
cin>>x;
cout<<"y: ";
cin>>y;
cout<<"z: ";
cin>>z;
for (int i = 0; i < vector.size(); i++)
{
if (vector[i]->Distance(x,y,z) <= vector[i]->GetR())
{
cout<<vector[i]->GetName()<<" ";
cout<<vector[i]->GetR()<<" ";
cout<<"("<<vector[i]->GetX()<<"; "<<vector[i]->GetY()<<"; "<<vector[i]->GetZ()<<")"<<endl;
}
}
}
else exit = true;
}
for (int i = 0; i < vector.size(); i++)
{
delete []vector[i];
}
vector.clear();
return 0;
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости