标准的lib free是否在C中返回了char *变量?

时间:2016-04-05 23:54:37

标签: c++ c malloc

我有一个返回char*的函数。任何其他程序都不得删除或重用此char *。我知道在C ++中你不会使用malloc,但你(和我)使用new在内存中分配空间。

如果我这样做:

char buffer[100]; //I just sub'ed rbp at least 100bytes+allign

返回时,此空间将不再归因于当前函数,因此返回此缓冲区ptr是危险的。

总之,我想知道为什么stdio和其他一些libs可以返回一个char指针,我们甚至懒得释放它们?他们分配了malloc或只是堆栈? 我应该如何实现我的C(only)函数来返回一个char数组为 safe

1 个答案:

答案 0 :(得分:2)

Why don't you look at the documentation and find out?(您可以在计算机上运行man inet_net_ntop;这是一个可能与您的系统略有不同的在线版本)

  

返回值

     

成功时, inet_net_ntop()会返回 pres 。出错,它返回NULL,          并设置 errno 以指示错误原因。

pres是其中一个参数。所以它返回你给它的相同指针,除非出现错误。