所有。我用的时候
static char* result = malloc(1000*sizeof(char));
在基于ONC + SUN RPC的服务器程序的一个过程中。但是这个字符串应该返回。
如果它是静态的,我认为没有必要释放它。对于每次,字符串结果将被分配相同的地址,不会导致内存冲突。
我是对的吗?或者我该怎么办?这是返回值,如何释放它? 谢谢
答案 0 :(得分:0)
如果我理解您的问题,那么您在函数调用中使用初始值设定项,返回类型char*
。在这种情况下,使用静态存储类没有问题。 result
将在程序的整个生命周期中保留其值(您分配的内存地址)。
但是,在此实例中不会多次调用malloc。只有第一次通过你的功能。此外,内存仍然在堆上分配,因此您仍需要在完成后释放它。但是,这个释放将在程序的exit()上执行,因此可以忽略。