对于刚接触编程的人在子函数数中申请动态空间时可能会心有疑问,我们在子函数中申请的动态空间是否需要释放呢?若是需要释放又该如何释放呢?
释放的理由
在子函数中申请的动态空间肯定是需要释放的,否则会造成内存泄漏。
释放的方法
如果这个动态空间不是你需要返回的值,则可以直接在子函数中进行释放,但是如果你需要将这个动态空间返回上一级函数,则无法在子函数中释放,因为如果在返回之前释放则返回值无效,甚至会报错,如果在返回值之后释放,则释放代码无法执行。这个时候我们需要在上一级函数中定义一个指针变量,由这个指针去指向我们动态分配的空间,即去接受函数的返回值,再将这个指针释放。
另一种方法
我们可以尽量避免在子函数中返回动态空间,直接在主函数中申请好空间之后,将指向该空间的指针传入子函数。