CPtrArray m_arrItems;pitem = new MYITEM;
m_arrItems.Add(pitem);
pitem = new MYITEM;
m_arrItems.Add(pitem);
pitem = new MYITEM;
m_arrItems.Add(pitem);
最后我用:
for(int i=0; i<m_arrItems.GetCount(); i++)
{
pitem = (PMYITEM)m_arrItems.GetAt(i);
delete[] pitem; // 也试过delete pitem; 结果运行到这里时会报错.
}
m_arrItems.RemoveAll();
而我不用delete就直接RemoveAll的话运行是没问题的,在论坛上看到有人说手工new的就需要手工delete.如果不是上面那样
delete该如何手工删除呢?
m_arrItems.Add(pitem);
pitem = new MYITEM;
m_arrItems.Add(pitem);
pitem = new MYITEM;
m_arrItems.Add(pitem);
最后我用:
for(int i=0; i<m_arrItems.GetCount(); i++)
{
pitem = (PMYITEM)m_arrItems.GetAt(i);
delete[] pitem; // 也试过delete pitem; 结果运行到这里时会报错.
}
m_arrItems.RemoveAll();
而我不用delete就直接RemoveAll的话运行是没问题的,在论坛上看到有人说手工new的就需要手工delete.如果不是上面那样
delete该如何手工删除呢?
解决方案 »
- 大家有没有遇到过AfxMessageBox造成死机?
- 编译的时候出现: error C2601: 'shuiwei' : local function definitions are illegal,朋友帮忙看下咯
- VC内嵌汇编的问题
- 一个类似象棋布局的程序, 判断子窗口是否叠加。
- 这个是不是文件对话框中的控件ID?请过来人说说,不胜感激。csdn好冷情,问了好多问题都没有人答,555
- 土问题一个,如何从CWinApp类派生一个新类?我想看到它的类向导里边的信息
- delphi调用vc动态库,参数怎么变, 还有要不要在函数声明前声明类呀.
- 如何使工具栏中某按钮不显示图标,仅显式文本啊?
- 怎么设置connect函数的超时
- 请问各位大虾如何调试vc++程序?
- 求救,为什么保存图片只有黑白两种颜色!
- 关于动态创建的ToolBar时,读取数据的问题!
pitem = (PMYITEM)m_arrItems.GetAt(i);
if(pitem !=NULL)
{
delete pitem;
pitem = NULL;
}可能你加入的时候有错
附上我的测试代码:typedef struct _tagItem
{
int nID; //¸ÃitemµÄidºÅÊǶàÉÙ
CString name; //¸ÃitemµÄÃû×Ö
}tagItem;int count = 5;
CPtrArray array;
tagItem* item = NULL;
for ( int i=0; i<count; i++ )
{
item = new tagItem;
array.Add( item );
TRACE( _T("Add item%d: 0x%x \n"), i, item );
}
for ( i=0; i<count; i++ )
{
item = (tagItem*)array.GetAt( i );
TRACE( _T("delete item%d: 0x%x\n"), i, item );
delete item;
item = NULL;
}
另外,删除最好用array.Remove(i),并且从后面删起
char szName[4];
int nAge;
};
typedef MYITEM* PMYITEM;
---------------------------------
CPtrArray m_arrItems;
MYITEM *pitem = NULL;
pitem = new MYITEM;
m_arrItems.Add(pitem);
pitem = new MYITEM;
m_arrItems.Add(pitem);
pitem = new MYITEM;
m_arrItems.Add(pitem);
for(int i=0; i <m_arrItems.GetSize(); i++)
{
pitem = (PMYITEM)m_arrItems.GetAt(i);
delete pitem;
}
m_arrItems.RemoveAll();