cppcheck:可能的空点取消引用

Chi*_*rag 2 c++ cppcheck

我的下面的代码工作正常,但仍然"cppcheck"发出警告,

Either the condition 'mem_limit_str!=0' is redundant or there is possible null pointer dereference: mem_limit_str.
Run Code Online (Sandbox Code Playgroud)

下面是代码,

 if (mem_limit_str!= NULL) //CPPCHECK error
                free(mem_limit_str);
Run Code Online (Sandbox Code Playgroud)

任何人都可以帮我解决这个问题吗?

Moh*_*ain 5

在进行之前,您不需要检查空指针free.你可以简单地说:

free(mem_limit_str);  // no if condition
Run Code Online (Sandbox Code Playgroud)

此警告只是告诉if条件是多余的.

n1124起草

7.20.3.2自由功能

概要

#include <stdlib.h> 
void free(void *ptr); 
Run Code Online (Sandbox Code Playgroud)

描述

free函数导致ptr指向的空间被释放,即可用于进一步分配.如果ptr是空指针,则不执行任何操作.[...]