对 unique_ptr 使用强化静态代码分析时发生内存泄漏
Memory leak when using fortify static code analyser for unique_ptr
在 fortify 静态代码分析器中使用 c++11 中的 std::unique_ptr
导致内存泄漏。
void *httpServerThread(void *arg)
{
std::unique_ptr <int> i(new int(1));
return NULL;
}
同时,下面的代码显示没有内存泄漏。
void *httpServerThread(void *arg)
{
int * i = new int(1);
delete i;
return NULL;
}
因为没有 std::make_unique
,所以没有 new
就无法创建 std::unique_ptr
。我使用的是 19.2.0 版本的 fortify -> Fortify_SCA_and_Apps_19.2.0。
欢迎任何建议。
显示的函数中没有内存泄漏。该消息是误报。
Since there is no std::make_unique, there is no way to create std::unique_ptr without new.
请注意,您可以编写自己的 make_unique
。当然,该函数必须使用 new
,但别无他法。
在 fortify 静态代码分析器中使用 c++11 中的 std::unique_ptr
导致内存泄漏。
void *httpServerThread(void *arg)
{
std::unique_ptr <int> i(new int(1));
return NULL;
}
同时,下面的代码显示没有内存泄漏。
void *httpServerThread(void *arg)
{
int * i = new int(1);
delete i;
return NULL;
}
因为没有 std::make_unique
,所以没有 new
就无法创建 std::unique_ptr
。我使用的是 19.2.0 版本的 fortify -> Fortify_SCA_and_Apps_19.2.0。
欢迎任何建议。
显示的函数中没有内存泄漏。该消息是误报。
Since there is no std::make_unique, there is no way to create std::unique_ptr without new.
请注意,您可以编写自己的 make_unique
。当然,该函数必须使用 new
,但别无他法。