标签:zeromemory memset {0}
今天遇到一个问题,特在此记录,防止以后再次犯同样的错误:
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
有未经处理的异常: 0xC0000005: 读取位置 0xFFFFFFFC 时发生访问冲突
标签:zeromemory memset {0}
原文地址:http://12073718.blog.51cto.com/12063718/1862116