list结构体析构问题
- C/C++ code
class FileLineInfo{public: FileLineInfo(void); ~FileLineInfo(void);private: //各种方法private: BYTE *m_pbyLines;};#define KG_FREE_ARRAY(pArray) \ do \ { \ if (pArray) \ { \ free(pArray); \ (pArray) = NULL; \ } \ } while (false)FileLineInfo::FileLineInfo(void){ unsigned int uiSize = GetAvailableSize(DEFAULT_LINE_SIZE); m_pbyLines = (BYTE *)malloc(uiSize); ZeroMemory(m_pbyLines, uiSize); }FileLineInfo::~FileLineInfo(void){ KG_FREE_ARRAY(m_pbyLines);}typedef struct sctBucket{ unsigned long ulhashCode; list<FileLineInfo>ltFileInfoList;}Bucket;typedef list<Bucket> MyHashTab;MyHashTab *my_HashTable;my_HashTable; = new MyHashTab[nTableLength];BOOL Check(){ Bucket m_bucketNode; FileLineInfo fileInfoNode; m_bucketNode.ulhashCode = 0; m_bucketNode.ltFileInfoList.push_back(fileInfoNode); my_HashTable[nHashIndex].push_back(m_bucketNode); return TRUE;}
大概这样的一段代码,在调用Check()的时候,会造成内存问题,调用了~FileLineInfo()2次,肿么办呢?
[解决办法]
没有拷贝构造函数和赋值函数?