鱼C论坛

 找回密码
 立即注册
查看: 930|回复: 7

[已解决]关于动态内存管理的问题

[复制链接]
发表于 2020-5-4 15:25:49 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
我将realloc用在了一个函数当中,如 下图所示

函数返回一个指针,在return语句之后用free生效吗?
如果不生效,在return前面用free不就没办法返回指针了吗?
希望有大佬帮忙解答一下
最佳答案
2020-5-4 15:55:50
你不光不能free,还得str定义成static,否则返回野指针
9SBJ]B2AHWF8X31QE9@U6RF.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-5-4 15:55:50 | 显示全部楼层    本楼为最佳答案   
你不光不能free,还得str定义成static,否则返回野指针
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-5-4 16:02:32 | 显示全部楼层
永恒的蓝色梦想 发表于 2020-5-4 15:55
你不光不能free,还得str定义成static,否则返回野指针

谢谢谢谢,还真不知道这个知识点 ,那我是不是可以再声明一个char指针保存str,这样str就可以free掉了吧
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-4 16:13:19 | 显示全部楼层
不用释放str,因为str本来就是指向你想要的数据(因为str是一个指针,所以返回时还是指向原来的地方),一释放掉了不就没有了吗?

要等不用str的时候再释放str
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-4 16:17:05 | 显示全部楼层
我感觉你要不在函数外部进行free掉
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-5-4 16:24:00 | 显示全部楼层
KevinHu 发表于 2020-5-4 16:13
不用释放str,因为str本来就是指向你想要的数据(因为str是一个指针,所以返回时还是指向原来的地方),一 ...

嗯嗯了解了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-5-4 16:36:42 | 显示全部楼层
4goodworld 发表于 2020-5-4 16:17
我感觉你要不在函数外部进行free掉

感谢解答
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-4 16:58:15 | 显示全部楼层
慕容紫小英 发表于 2020-5-4 16:02
谢谢谢谢,还真不知道这个知识点 ,那我是不是可以再声明一个char指针保存str,这样str就可以free掉了吧

在函数外声明一个char指针,作为参数传给函数。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-14 01:15

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表