C语言问题记录之Conflicting types for ‘free |
您所在的位置:网站首页 › c语言typesh › C语言问题记录之Conflicting types for ‘free |
问题描述:
今天在XCode中尝试练习C语言,使用malloc分配堆内存空间。但是想调用free释放堆内存空间时,Xcode编译失败,并且提示:Conflicting types for ‘free’ int main(int argc, const char * argv[]) { int a = 10; int b = 20; int * r = IntOperate(&b,&a, MULT); printf("MULT : %d \n",*r); r = IntOperate(&b,&a, MINS); printf("MINS : %d \n",*r); r = IntOperate(&b,&a, DIV); printf("DIV : %d \n",*r); r = IntOperate(&b,&a, ADD); printf("ADD : %d \n",*r); free((void*)r); //XCODE 提示:Conflicting types for 'free return 0; } 原因分析:由于Xcode环境中 free方法的声明有多个,无法隐士导入正确的free方法实现。造成了报错 解决方案:在使用之前,没有main方法之前,显示声明一下free方法的签名信息,便于编译器链接正确的free的实现。 //新增该方法声明 extern void free(void*); int main(int argc, const char * argv[]) { int a = 10; int b = 20; int * r = IntOperate(&b,&a, MULT); printf("MULT : %d \n",*r); r = IntOperate(&b,&a, MINS); printf("MINS : %d \n",*r); r = IntOperate(&b,&a, DIV); printf("DIV : %d \n",*r); r = IntOperate(&b,&a, ADD); printf("ADD : %d \n",*r); free((void*)r); //此时Xcode编译成功 return 0; }本人C语言小白一名,请勿见笑 ~ ~ |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |