Вот пример кода, который у меня есть:
void test()
{
Object1 *obj = new Object1();
.
.
.
delete obj;
}
Я запускаю его в Visual Studio, и он выходит из строя в строке с 'delete obj;'. Разве это не нормальный способ освободить память, связанную с объектом? Я понял, что он автоматически вызывает деструктор... это нормально?
Вот фрагмент кода:
if(node->isleaf())
{
vector<string> vec = node->L;
vec.push_back(node->code);
sort(vec.begin(), vec.end());
Mesh* msh = loadLeaves(vec, node->code);
Simplification smp(msh);
smp.simplifyErrorBased(errorThreshold);
int meshFaceCount = msh->faces.size();
saveLeaves(vec, msh);
delete msh;
}
loadleaves()
- это функция, которая считывает сетку с диска и создает объект Mesh
и возвращает ее. (думаю, что vec
и node->code
- это просто информация о файле, который нужно открыть)
Должен ли я удалить строку delete msh;
?