В моем приложении я выделил память для моей переменной (unsigned char*
), используя malloc()
, когда пытаюсь освободить эту память в деструкторе. Я использую это условие, чтобы избежать двойного повреждения.Освобождение памяти в linux C++?
unsigned char *wsqData;
wsqData= (unsigned char *)malloc(10000*sizeof(unsigned char));
в моем деструкторе
if(wsqData!=NULL)
{
free(wsqData);
wsqData=NULL;
}
теперь проблема, когда я освободил память до моего деструктора, это «если условие» не может работать должным образом, это еще раз попытаться освободить эту переменную его причину ошибка двойного повреждения. В чем проблема в этом сценарии?
Почему вы используете управление памятью C в том, что предположительно является программой на C++? –
Если вы пытаетесь что-то освободить дважды, у вас есть ошибка в коде. Вы не указали свой код, поэтому вам трудно посоветовать ... –
Почему вы освобождаете память в разных местах? –