有未經處理的異常: 0xC0000005: 讀取位置 0xFFFFFFFC 時發生訪問衝突

今天遇到一個問題,特在此記錄,防止以後再次犯同樣的錯誤:

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


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章