使用 SUN RPC 释放内存
Posted
技术标签:
【中文标题】使用 SUN RPC 释放内存【英文标题】:Memory Free using SUN RPC 【发布时间】:2011-02-14 15:17:18 【问题描述】:全部。当我使用
static char* result = malloc(1000*sizeof(char));
在基于 ONC+ SUN RPC 的服务器程序的一个过程中。但是这个字符串是应该返回的。
如果它是静态的,我认为没有必要释放它。每次,字符串结果都会被分配相同的地址,不会引起内存冲突。
我说的对吗?或者我应该怎么做?这是返回值,怎么释放呢? 谢谢
【问题讨论】:
【参考方案1】:如果我理解您的问题,您在返回类型 char*
的函数调用中使用了初始化程序。在这种情况下,使用静态存储类是没有问题的。 result
将在程序的整个生命周期内保持其值(您分配的内存地址)。
但是,在这种情况下不会多次调用 malloc。只有第一次通过你的函数。此外,内存仍然分配在堆上,因此您仍然需要在完成后释放它。但是,此释放将在程序的 exit() 上执行,因此可以忽略。
【讨论】:
虽然你是对的,在你的应用程序结束时操作系统会自动回收内存,但这绝不是关于内存管理的 begin 'lazy' 的论据。如果您分配内存,请始终在应用程序稍后的某个位置释放它,即使这意味着它在退出时。以上是关于使用 SUN RPC 释放内存的主要内容,如果未能解决你的问题,请参考以下文章