CList<int, int>* m_cList = new CList<int, int>[NoteNumber]; 这是我new的一组CList,其中NoteNumber是大于2的;这个CList数组是用来存放无向图的的邻接表,用来检测这个无向图的连通性,可以正确的检测出图的连通性;现在要释放这个CList数组总是出错我用的是delete m_cList Debug版本下运行到这里就出错这个CList数组应该怎样正确地释放?
解决方案 »
- 什么影响了sendto()的性能
- 简单问题,服务器需要定义多少个socket?
- 如何直接修改BMP文件的属性?
- 如何将_bstr_t的内容拷贝到LPOLESTR指针上?
- com 插件中 怎么用ado连接数据库?
- 看看这个是不是VC的Bug ????????!!!!!!!!!!!
- 请问怎么在对话框上添加文件菜单条啊?
- CAsyncsocket 奇怪问题
- 50分求助!!!
- opengl里如何控制物体循环往复运动
- 在一个类中定义一个CString成员变量,没有初始化,然后在后续代码中用一个CString的值给其赋值,有时会出错,为什么?
- 在vc6.0中怎么提取socket收到的浮点型数据?急用谢谢大侠
for (i=0; i<NoteNumber; i++)
{
m_cList[i].RemoveAll();
} delete m_cList;这样释放还是出错~~~
可是对这个CList数组加入元素的话,就会又问题int i;
for (i=0; i <NoteNumber; i++)
{
m_cList[i].AddTail(i);
} 则 delete m_cList 报错
应该是 delete[] m_cList ;
一般我double* m_cMy = new double[NoteNumber]; 直接delete m_cMy 就可以并不需要delete []m_cMy是不是这样写delete m_cMy 不规范,最好写成 delete []m_cMy
》》是不是这样写delete m_cMy 不规范,最好写成 delete []m_cMy是的。只不过基础类型没有析构函数,写成delete和delete[]没有区别。 如果是类的话,delete和delete[]就区别很大了。delete[]能保证每一个析构函数都被调用;
delete 就认为只有一个对象,因此只有第一个对象的析构函数被调用。