今天遇到一个问题,特在此记录,防止以后再次犯同样的错误:
struct UserInfo
{
CString UserName; //用户昵称
CString IP; //用户IP
SOCKET socket; //用户的套接字
bool operator==(const UserInfo &uInfo) const
{
if (socket == uInfo.socket)
return true;
return false;
}
};
这是我定义的结构体,程序中如此初始化:
ZeroMemory(&sClient, sizeof(sClient));
TRACE(sClient.UserName);
sClient.UserName = uMsg.UserName;
然后Trace的时候就报错“有未经处理的异常: 0xC0000005: 读取位置 0xFFFFFFFC 时发生访问冲突”,调试发现sClient.UserName为NULL
解决方法:使用memset或者{0}进行初始化;对象最好通过构造函数初始化
memset,zeromemory,{0}三者的区别请参考:http://blog.csdn.net/tjunxin/article/details/8540259
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。