此警告表明正在取消引用空指针,如果指针的值无效,结果是未定义的
↑官方文档的解释
意思就是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);
	}
}
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐