CList的SetAt函数使用时报错,求解释

wxliangzyt 2013-06-18 11:25:04
类定义

class CPerSocketData
{
public:
SOCKET m_Socket;
SOCKET m_AccSocket;
char clno[30];
char clip[40];

CPerSocketData()
{
m_Socket = INVALID_SOCKET;
m_AccSocket = INVALID_SOCKET;
memset(clno,0,30);
memset(clip,0,40);

}
};

CList的定义
CList <CPerSocketData *, CPerSocketData *> m_ArrSocketData;


报错代码如下:

CPerSocketData *scp=NULL;
POSITION pos = pThis->m_ArrSocketData.GetHeadPosition();
while (pos != NULL)
{
scp = pThis->m_ArrSocketData.GetNext(pos);
if (scp->m_Socket = pPerSockData->m_Socket)
{
memcpy(scp->clip,clientip,strlen(clientip));
pThis->m_ArrSocketData.SetAt(pos,scp);
break;
}
}


在执行:pThis->m_ArrSocketData.SetAt(pos,scp);时报错,求原因

...全文
85 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
yaozhiyong110 2013-06-18
  • 打赏
  • 举报
回复
因为在处理最后一个数据的时候 这行scp = pThis->m_ArrSocketData.GetNext(pos);结束的时候pos已经为null 了 if满足的话 执行pThis->m_ArrSocketData.SetAt(NULL,scp);当然报错啦

18,356

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧