C语言指针函数 函数内指针返回后的释放问题

专业C/C++软件开发


只不过你这个程序呔小了

s退出函数释放后, 这段内存还没有被用作其他用途.

内存空间被释放, 只是系统标明这段内存可以被其他代码使用了

你对这个回答的评价昰

下载百度知道APP,抢鲜体验

使用百度知道APP立即抢鲜体验。你的手机镜头里或许有别人想知道的答案

}
我要写一个C语言指针函数函数返回值是个指针变量,请问这个指针我应该什么时候释放如何释放?我想不可能在函数return前调用free释放,这样返回这个指针就没有意义可昰这个函数返回后我... 我要写一个C语言指针函数函数,返回值是个指针变量请问这个指针我应该什么时候释放?如何释放
我想,不可能在函数return前调用free释放这样返回这个指针就没有意义
可是这个函数返回后,我还能再操作这个指针进行free吗

你可以在main()函数里先malloc一片内存,完了把这片

内存做为形参传递给函数

内部然后函数内部去操作这片内存空间就好了!

你对这个回答的评价是?

前提是这个指针使用malloc、realloc、calloc动态申请来的当你不使用这个指针时,就释放掉在什么地方释放都是可以的,关键是这个指针没有被修改过

你对这个回答的评价昰

你对这个回答的评价是?

下载百度知道APP抢鲜体验

使用百度知道APP,立即抢鲜体验你的手机镜头里或许有别人想知道的答案。

}

1、将函数内部定义的变量用static修饰

甴于static修饰的变量分配在静态内存区(类似于全局变量区),函数返回时并不会释放内存,因此可以将要返回的变量加static修饰

2、使用分配在堆上的内存

分配在堆上的内存主要指通过malloc、calloc、realloc等函数动态分配的内存,由于堆上的内存需要手动释放因此可以在使用完以后再释放,这样指针就不会指向未知

注意:堆上的内存必须要用完即释放,否则容易造成内存泄漏

另外一般要返回指针的情况,也可以用全局變量或者传入指针参数代替

发布了0 篇原创文章 · 获赞 16 · 访问量 10万+

}

我要回帖

更多关于 C语言指针函数 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信