q*******i 发帖数: 353 | 1 【 以下文字转载自 CS 讨论区 】
发信人: qqwuweiyi (娓娓), 信区: CS
标 题: 在子函数内开内存,返回主函数指针然后释放空间是不是很糟糕的设计?
发信站: BBS 未名空间站 (Mon Mar 21 23:19:53 2011, 美东)
比如子函数(void)内用主函数通过参数传过来得指针malloc了空间,然后做
了一些操作之后,返回主函数,在主函数里面再free这个空间。这样做理论上应
该没问题,但是是不是风险很大?是很糟糕的设计?比较好的方法是什么呢?
(用指针的指针传递?) | g*********s 发帖数: 1782 | 2 yes, bad practice.
who allocate, who deallocate.
【在 q*******i 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 【 以下文字转载自 CS 讨论区 】 : 发信人: qqwuweiyi (娓娓), 信区: CS : 标 题: 在子函数内开内存,返回主函数指针然后释放空间是不是很糟糕的设计? : 发信站: BBS 未名空间站 (Mon Mar 21 23:19:53 2011, 美东) : 比如子函数(void)内用主函数通过参数传过来得指针malloc了空间,然后做 : 了一些操作之后,返回主函数,在主函数里面再free这个空间。这样做理论上应 : 该没问题,但是是不是风险很大?是很糟糕的设计?比较好的方法是什么呢? : (用指针的指针传递?)
| e***l 发帖数: 710 | | j**w 发帖数: 382 | 4
What's wrong for that?
If I understand correctly, strdup does something like that, except it
returns the address of new allocated memory and it's caller job to free it
later.
【在 q*******i 的大作中提到】![](/moin_static193/solenoid/img/up.png) : 【 以下文字转载自 CS 讨论区 】 : 发信人: qqwuweiyi (娓娓), 信区: CS : 标 题: 在子函数内开内存,返回主函数指针然后释放空间是不是很糟糕的设计? : 发信站: BBS 未名空间站 (Mon Mar 21 23:19:53 2011, 美东) : 比如子函数(void)内用主函数通过参数传过来得指针malloc了空间,然后做 : 了一些操作之后,返回主函数,在主函数里面再free这个空间。这样做理论上应 : 该没问题,但是是不是风险很大?是很糟糕的设计?比较好的方法是什么呢? : (用指针的指针传递?)
|
|