Хотите улучшить этот вопрос? Переформулируйте вопрос, чтобы он соответствовал тематике «Stack Overflow на русском».
Закрыт 10 месяцев назад.
Никак не могу написать деструктор для данноого класса
class Room_List
{
node Node;
public:
Room_List()
{
Node.Current=NULL;
Node.Next=NULL;
};
void Add_to_Room_List( Room* room)
{
node *n=&(this->Node);
while(n->Next!=NULL)
n=n->Next;
if(n->Current!=NULL)
{
node *tmp=(node*)malloc(sizeof(node));
tmp->Next=NULL;
tmp->Current=room;
n->Next=tmp;
}
else
{
n->Current=room;
n->Next=NULL;
}
};
~Room_List()
{
node *N=&(this->Node);
node *tmp=N;
while(N->Next!=NULL)
{
N=N->Next;
cout<<"tmp";//поиск места ошибки
free(tmp);
tmp=N;
}
cout<<"N error";//поиск места ошибки
free(N);
};
};
//Room-другой класс
class Room
{
friend class Room_List;
protected:
COORD OO;
COORD XY;
COORD_Matrix Doors;
Character_Matrix Enemies;//здесь только поля без методов
//...
};
Хочу чтобы деструктор освобождал память, выделенную под указатели, но не объекты класса Room.
При вызове деструктора возникает ошибка ( 3221226356 )
Возникает она в функции free();
Заранее спасибо за любую помощь.
Первый же free
указывает на элемент в классе Room_List::Node
. А память для него не выделялась.
Удалять нужно со второго элемента. Или , что правильнее Node
сделать указателем, а не объектом. С первоначальным значением NULL.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Хочу расширить свои навыки как программиста в направлении кроссплатформенностиХочу изучить создание приложений на линуксе, использование...
Может быть кто то из вас пользовался unigine для разработкиИнтересует следующий простой вопрос необходимо найти где происходит пересечение...
Пробовал по разному подключать Curl в основном следовал этому пути, но когда не помогло, то смотрел на этот вариант, что тоже не решило проблемуПостоянно