重载CListCtrl类出现内存泄露
求助:重载CListCtrl类出现内存泄露
重载CListCtrl类
struct stColor
{
int nRow;
int nCol;
COLORREF rgb;
};
void CListCtrlCl::SetColTextColor(int col,COLORREF color)
{
stColor *pColor = new stColor;
pColor->nCol = col;
pColor->rgb = color;
m_colTextColor.AddTail(pColor);
}
出现内存泄露,请问怎样删除 pColor?
------解决方案--------------------
当进程不再需要用这个stColor *pColor = new stColor的地址的时候
就及时释放掉就好了
------解决方案--------------------
重载CListCtrl类
struct stColor
{
int nRow;
int nCol;
COLORREF rgb;
};
void CListCtrlCl::SetColTextColor(int col,COLORREF color)
{
stColor *pColor = new stColor;
pColor->nCol = col;
pColor->rgb = color;
m_colTextColor.AddTail(pColor);
}
出现内存泄露,请问怎样删除 pColor?
------解决方案--------------------
当进程不再需要用这个stColor *pColor = new stColor的地址的时候
就及时释放掉就好了
------解决方案--------------------
#define MAXCOLORS 1000
struct stColor
{
int nRow;
int nCol;
COLORREF rgb;
} stColors[MAXCOLORS];
int stColorI=0;
void CListCtrlCl::SetColTextColor(int col,COLORREF color)
{
stColor *pColor = stColors+stColorI;
stColorI++;if (stColorI>=MAXCOLORS) {MessageBox("Too many stColors!");exit(1);}
pColor->nCol = col;
pColor->rgb = color;
m_colTextColor.AddTail(pColor);
}