У меня есть класс под названием Task.Файл заголовка выглядит так:
class Task
{
public:
Task();
//Methods Declarations
private:
int uid;
list<Task> l;
friend ostream & operator<<(ostream & os, const Task &t);
friend ostream & operator<<(ostream & os, const list<Task *> &l);
};
Теперь в моем основном файле я запускаю:
Task * tasks[7];
for (int i = 0; i != 7; ++i)
tasks[i] = new Task();
delete [] *tasks;
при запуске delete[] *tasks;
Я получаю сообщение об ошибке ниже:
Assignment 4(23901) malloc: *** error for object 0x1001009f8: pointer being
freed was not allocated *** set a breakpoint in
malloc_error_break to debug
Как только я закомментирую list < Task *> l
и перезапущу его, сообщение об ошибке исчезнет.Я попытался изменить list < Task * > l
на list < Task > l
, но безрезультатно.
Не могу понять.Зачем выдавать ошибку, когда в стеке выделяется list < Task >
(хорошие указатели на элементы кучи)?(Управление STL).Также попробовал vector<int>
.Я получаю то же самое.
ОБНОВЛЕНИЕ: удаление задач [я] не добился цели.