为什么free函数的形参是void*类型,传入的是其他类型 指针不报警告?
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 类型不符。为什么?
如何才能针对这个自己定义的函数去掉这个告警
为什么free函数的形参是void*类型,传入的是其他类型 指针如 int8*,int32*,不报警告?
比如 int8 *puff = NULL;
free(puff); 编译器不报类型不符的警告。
而我自己定义的函数
void myfree(void **ppuff)
{
if(NULL !=*ppuff)
{
free(*ppuff);
*ppuff = NULL;
}
}
myfree(&puff); 编译器就告警:void** 和 **int8 类型不符。为什么?
如何才能针对这个自己定义的函数去掉这个告警
...全文
相关推荐
C语言中free函数的使用详解
free函数是释放之前某一次malloc函数申请的空间,而且只是释放空间,并不改变指针的值。下面我们就来详细探讨下
C语言指针进阶:数组、函数指针与动态内存管理实战解析
指针是C语言中最核心也最易混淆的概念之一,尤其在涉及数组、函数和动态内存时,初学者常被各种复杂声明和底层细节绕晕。理解指针的本质,需要从类型系统出发,厘清数组名退化、指针步长、二级指针传参、函数指针回调等基础原理。这些技术不仅能提升代码的灵活性与复用性,更是嵌入式、Linux C开发等工程场景中的高频考点。通过实际案例演示命令分发器、字符串管理、多维数组传参与内存分配释放的正确姿势,可以系统掌握指针数组与数组指针的区分、const限定符的语义陷阱以及避免悬空指针与重复释放的工程规范。本文聚焦这些进阶组合场景
C语言基础之malloc和free函数详解
主要介绍了C语言基础之malloc和free函数详解的相关资料,需要的朋友可以参考下
C语言之free函数以及野指针介绍
以下是对C语言中的free函数与野指针进行了详细的分析介绍,需要的朋友可以参考下
void及void指针(C,C++)
void及void指针(C,C++)


