我正在C++上編寫應用程序,並使用intel檢查器進行內存分析。在C++中初始化char緩衝區
但是我有一個關於在我的記憶分析測試中發現潛在記憶問題的各種結果的問題。
我正在嘗試做一個更好的穩定的應用程序,我有幾個問題,我知道他們是基礎知識仍然在這個時候看起來太多,我有點困惑的代碼。感謝你幫助他們得到滿足。
- 我應該初始化char buffer [30]爲默認值嗎?
- 什麼應該是LPWSTR的默認vaue(我試過NULL)它仍抱怨我的成員變量未初始化的內存訪問。
- 初始化一個結構。我嘗試使用memset。儘管如此,剖析器看起來不愉快,並抱怨未初始化的內存訪問。
一個實例是 在我的主叫類的構造函數我已經初始化句柄作爲
m_hidHandle = NULL; //member variable and an object of struct hid_device
在這之後我打個電話做hid_write。
,並在那裏,hid_write這inturns調用WriteFile的(這是API類hid.c)
WriteFile(dev->device_handle, buf, length, NULL, NULL);
在這裏,我得到一個抱怨未初始化內存訪問。 我甚至試着檢查WrtieFile的api文檔。仍然不乾淨,我正在抱怨 一個內存問題。
另一個例子是 我有可變
WINHTTP_CURRENT_USER_IE_PROXY_CONFIG m_pConfig;
在構造函數中的一員,我想的結構初始化爲NULL:
memset(&m_pConfig, 0, sizeof(WINHTTP_CURRENT_USER_IE_PROXY_CONFIG));
它抱怨未初始化內存訪問。我甚至試過
//proxyConfig.fAutoDetect = false;
//proxyConfig.lpszAutoConfigUrl = NULL;
//proxyConfig.lpszProxy = NULL;
//proxyConfig.lpszProxyBypass = NULL;
仍然沒有幫助。
你可以發佈一些代碼,演示你在做什麼,並拋出分析器錯誤的行嗎? –
我已將它們添加到最初的發佈。謝謝!!! –
@linuxdeveloper,想知道,'LPWSTR'(和'WriteFile')來自哪裏?我知道Linux中沒有這樣的東西,但似乎你使用的是'hid_device',除非你在你的應用程序中本地定義它。 – chris