У меня багги поведение в коде C++, которое, как представляется, вызвано неправильным освобождением динамически созданных структур. В структуры являются в виде:Удаление новых структур в C++
typedef struct
{
char *value;
} Element;
typedef struct
{
int num;
Element **elements;
int *index;
} Container;
Они созданы так:
Element *new_element(int size)
{
Element *elem = new Element;
elem->value = new char[size];
return elem;
}
Container *new_container(int num)
{
Container *cont = new Container;
cont->num = num;
cont->elements = new Element*[num];
cont->index = new int[num];
}
Что такое правильный способ освободить их?
Самый простой способ - переписать код на C++, не используя указатели и не вызовы 'new'. Тогда вам не придется беспокоиться о том, чтобы освободить что-нибудь. – juanchopanza
Вы знаете, я использовал список вопросов, которые можно было бы решить, просто используя 'std :: vector' вместо' new [] '. Если бы я не прекратил поддерживать его в обновлении несколько месяцев назад, мой жесткий диск VPS был бы полным. – rightfold