沐小禹 发表于 2018-4-18 21:04:52

error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int

#include<stdio.h>
#include<stdlib.h>
int fun(int n)
{int *p;
p=(int*)malloc(sizeof(int));
*p=n;
return*p;
}
main()
{int a;
a=fun(10);
printf("%d\n",a+fun(10));
}

风过无痕丶 发表于 2018-4-18 22:22:00

本帖最后由 风过无痕丶 于 2018-4-19 10:52 编辑

你的主函数没写返回值和返回值类型c++不像c允许你写隐式,

风过无痕丶 发表于 2018-4-18 22:22:55

本帖最后由 风过无痕丶 于 2018-4-19 10:59 编辑

还有你的fun函数的逻辑也有点问题,fun函数malloc出来的是动态内存, 但是你只返回了一个数值回去, 没有把这个内存地址返回回去, 那么这个函数结束以后!不会自动释放动态内存! malloc出来的内存就被闲置了,没有得到利用! 说专业点! 内存泄露! 如果这个函数你调用个几十几百次! 那么闲置的内存就不是一点点了。。。

沐小禹 发表于 2018-4-20 16:51:24

风过无痕丶 发表于 2018-4-18 22:22
还有你的fun函数的逻辑也有点问题,fun函数malloc出来的是动态内存, 但是你只返回了一个数值回去, 没有把 ...

{:5_106:} 给你点赞 谢谢解答 这样就明白了 我说怎么不对呢

丘陵山地 发表于 2022-7-24 21:23:20

风过无痕丶 发表于 2018-4-18 22:22
你的主函数没写返回值和返回值类型c++不像c允许你写隐式,

那大佬应该怎么写呢,return 0;好像不行{:10_319:}

丘陵山地 发表于 2022-7-24 21:26:10

丘陵山地 发表于 2022-7-24 21:23
那大佬应该怎么写呢,return 0;好像不行

哦哦,我知道了。写成int main
页: [1]
查看完整版本: error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int