我正在 C++ 上编写应用程序并使用英特尔检查器进行内存分析。
但是,我对在内存分析测试中获得的各种结果有疑问,以发现潜在的内存问题。
我正在尝试做一个更好的稳定应用程序,我有几个问题我知道它们仍然是基础知识,此时我对代码进行了太多研究,我有点困惑。感谢您帮助他们澄清。
- 我应该将 char buffer[30] 初始化为默认值吗?
- 什么应该是 LPWSTR 的默认值(我试过 NULL)它仍然抱怨我的成员变量上的未初始化内存访问。
- 初始化一个结构。我尝试使用 memset。探查器仍然看起来不高兴并抱怨未初始化的内存访问。
一个实例是在我的调用者类构造函数中,我已将句柄初始化为
m_hidHandle = NULL; //member variable and an object of struct hid_device
之后我打电话做hid_write。
在那里,hid_write 又调用 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;
仍然没有帮助。