此警告表明正在取消引用空指针,如果指针的值无效,结果是未定义的
↑官方文档的解释
意思就是malloc之后没有检查是不是空间不够返回了空指针NULL
例子
#include<malloc.h>
void f()
{
char *p = (char*)malloc(10);
*p = '\0';
//balabala...
free(p);
}
这个代码会触发警告,因为如果没有足够的可用内存,对malloc 的调用可能返回NULL,下面的就对了
#include<malloc.h>
void f()
{
char *p = (char*)malloc(10);
if(p)
{
*p='\0';
//balabalabala......
free(p);
}
}