【发布时间】:2012-04-23 08:15:40
【问题描述】:
在我的应用程序中,我使用 malloc() 为我的变量 (unsigned char*) 分配了内存,当尝试在析构函数中释放该内存时,我使用此条件来避免双重损坏。
unsigned char *wsqData;
wsqData= (unsigned char *)malloc( 10000*sizeof( unsigned char));
在我的析构函数中
if(wsqData!=NULL)
{
free(wsqData);
wsqData=NULL;
}
现在的问题是,当我在析构函数之前释放内存时,这个“if 条件”无法正常工作,它再次尝试释放该变量,导致双重损坏错误。这个场景有什么问题?
【问题讨论】:
-
为什么在所谓的 C++ 程序中使用 C 内存管理?
-
如果您尝试两次释放某些内容,那么您的代码中有错误。你还没有展示你的代码,所以很难建议......
-
为什么要释放不同位置的内存?
标签: c++ linux memory malloc free