使用SUN RPC无内存

时间:2011-02-14 15:17:18

标签: c memory-management rpc

所有。我用的时候 static char* result = malloc(1000*sizeof(char)); 在基于ONC + SUN RPC的服务器程序的一个过程中。但是这个字符串应该返回。

如果它是静态的,我认为没有必要释放它。对于每次,字符串结果将被分配相同的地址,不会导致内存冲突。

我是对的吗?或者我该怎么办?这是返回值,如何释放它? 谢谢

1 个答案:

答案 0 :(得分:0)

如果我理解您的问题,那么您在函数调用中使用初始值设定项,返回类型char*。在这种情况下,使用静态存储类没有问题。 result将在程序的整个生命周期中保留其值(您分配的内存地址)。

但是,在此实例中不会多次调用malloc。只有第一次通过你的功能。此外,内存仍然在堆上分配,因此您仍需要在完成后释放它。但是,这个释放将在程序的exit()上执行,因此可以忽略。