|
网站首页
|
业界新闻
|
小组
|
威客
|
人才
|
下载频道
|
博客
|
代码贴
|
在线编程
|
编程论坛
|
登录
注册
短消息
我发表的主题
我参与的主题
我收藏的贴子
我上传的附件
我下过的附件
编辑个人资料
我的博客
用户控制面板
搜索
道具
恢复默认风格
碧海青天
秋意盎然
棕红预览
粉色回忆
蓝雅绿
紫色淡雅
青青河草
e点小镇
橘子红了
红红夜思
水晶紫色
雪花飘飘
新年快乐
风格
短消息
论坛展区
帮助
编程论坛
→
开发语言
→
『 C语言论坛 』
→ 在函数里申请的内存怎么在return后释放
我的收件箱(0)
欢迎加入我们,一同切磋技术
用户名:
密 码:
共有
2044
人关注过本帖
标题:
在函数里申请的内存怎么在return后释放
只看楼主
加入收藏
fjfjklds
等 级:
新手上路
帖 子:23
专家分:5
注 册:2015-9-25
结帖率:
57.14%
楼主
收藏
已结贴
√
问题点数:20 回复次数:6
在函数里申请的内存怎么在return后释放
char *getchar(){
char *p;
p=(char*)malloc(sizeof(char));
scanf("%s",p);
return p;
}
想使用没参数的函数直接输入字符串
1.但不知道申请了的内存怎么之后释放,
2.而且这个被输入的变量只能是指针,想请问别人那些可以char *p=getchar();和char p[n]=getchar();那样的函数要怎么实现
搜索更多相关主题的帖子:
return
字符串
而且
2016-03-09 23:22
举报帖子
使用道具
赠送鲜花
TonyDeng
等 级:
贵宾
威 望:
304
帖 子:25859
专家分:48889
注 册:2011-6-22
第
2
楼
收藏
得分:0
用free()釋放返回的指針所指向的內存。
授人以渔,不授人以鱼。
2016-03-09 23:40
举报帖子
使用道具
赠送鲜花
fjfjklds
等 级:
新手上路
帖 子:23
专家分:5
注 册:2015-9-25
第
3
楼
收藏
得分:0
回复 2楼 TonyDeng
但是释放的话不应该是在函数内进行的吗?如果在函数外free就没用函数的必要了,但是在函数内又不知该怎么释放
我看别人都是直接在主函数中char *a=getchar();后面没释放的动作
2016-03-09 23:51
举报帖子
使用道具
赠送鲜花
TonyDeng
等 级:
贵宾
威 望:
304
帖 子:25859
专家分:48889
注 册:2011-6-22
第
4
楼
收藏
得分:0
但是释放的话不应该是在函数内进行的吗?如果在函数外free就没用函数的必要了,但是在函数内又不知该怎么释放
我看别人都是直接在主函数中
char *a=getchar();
后面没释放的动作
這個別人拖出去打靶不用法庭判的了
授人以渔,不授人以鱼。
2016-03-09 23:53
举报帖子
使用道具
赠送鲜花
TonyDeng
等 级:
贵宾
威 望:
304
帖 子:25859
专家分:48889
注 册:2011-6-22
第
5
楼
收藏
得分:0
如果在函數中申請、在函數中釋放,那麽根本就不必要用malloc(),即無需在堆中請求內存(除非這塊内存的尺寸很大)。用malloc()的目的就是要在全局性質的堆數據區上拿內存,而代價是你自己管理內存的釋放。你要明白,針無兩頭尖,使用堆內存的好處必須付出管理維護複雜的代價。
授人以渔,不授人以鱼。
2016-03-09 23:58
举报帖子
使用道具
赠送鲜花
TonyDeng
等 级:
贵宾
威 望:
304
帖 子:25859
专家分:48889
注 册:2011-6-22
第
6
楼
收藏
得分:0
實際上對現代的操作系統來説,不釋放動態申請的內存也是沒問題的,因爲在進程結束之後操作系統會收回它所有佔用的內存,但作爲傳統,或良好習慣,或考慮一定程度的可移植性,釋放這些內存不是壞事,但這種管理行爲很不好做、很不容易做好。
授人以渔,不授人以鱼。
2016-03-10 00:23
举报帖子
使用道具
赠送鲜花
foxeer
等 级:
论坛游侠
帖 子:107
专家分:136
注 册:2015-12-29
第
7
楼
收藏
得分:10
楼主你这个在函数调用完成后,在main函数中直接free(getchar)就可以了,绝对不能再函数内进行释放,应在函数调用完成后释放。
2016-03-10 14:00
举报帖子
使用道具
赠送鲜花
7
1/1页
1
快速回复:
在函数里申请的内存怎么在return后释放
数据加载中...
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 0.031022 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved