为什么free函数的形参是void*类型,传入的是其他类型 指针不报警告?

liangchaoxi liangchaoxi 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
linux编译器GCC下

为什么free函数的形参是void*类型,传入的是其他类型 指针如 int8*,int32*,不报警告?

比如 int8 *puff = NULL;

free(puff); 编译器不报类型不符的警告。

而我自己定义的函数

void myfree(void **ppuff)
{


if(NULL !=*ppuff)
{

free(*ppuff);
*ppuff = NULL;
}

}

myfree(&puff); 编译器就告警:void** 和 **int8 类型不符。为什么?

如何才能针对这个自己定义的函数去掉这个告警
...全文

相关推荐

评论 14
收藏 已收藏
分享
返回顶部
liangchaoxi
C语言 70,039 成员 243,237 内容