都来看看哪错了?删除CPtrList元素总是报内存不可读.
CClientSocket* pSocket;
POSITION temp,pos;
for(pos=m_ConnectList.GetHeadPosition();pos!=NULL;)
{
pSocket=(CClientSocket*)m_ConnectList.GetNext(pos);
temp=pos;
m_ConnectList.RemoveAt(temp);
delete pSocket; // 单步执行到这句时报错
}
m_ConnectList 是 CPtrList 类型,执行删除时总是报错
...全文
相关推荐
CPtrList操作--插入,删除特定元素,删除全部
当不再需要列表中的对象时,记得释放它们的内存,以防止内存泄漏。总结一下,`CPtrList`是MFC中处理指针列表的一个强大工具,提供了插入、删除和遍历元素的便捷方法。
掌握CPtrList类:C++中链表的创建与管理
在讨论Windows编程时,CPtrList类是MFC(Microsoft Foundation Classes)库中一个不可忽视的组件。它属于非模板类,提供了对动态分配的指针的集合进行管理的功能,常用于存储指向任意对象的指针。在本章中,我们将揭开CPtrList的神秘面纱,从基本概念讲起,为您勾勒出其轮廓。CPtrList类提供了链表的实现,使得对链表的操作变得简单和高效。
CPtrList使用方法
构造函数CPtrList 构造函数用于创建一个空的 void 指针列表。首/尾访问GetHead() 函数返回列表(不能为空)的头元素,GetTail() 函数返回列表(不能为空)的尾元素。
基于MFC对话框的CPtrList应用
**删除元素**:CPtrList提供了`RemoveHead`和`RemoveAt`方法删除元素。
CPtrList简单练习
但要注意,删除元素后应手动释放对应的内存:```cppvoid* ptrToRemove = myList.GetHead(); // 获取要删除的元素myList.RemoveHead(); // 从列表中移除


