我有一个返回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 ?
答案 0 :(得分:2)
Why don't you look at the documentation and find out?(您可以在计算机上运行man inet_net_ntop
;这是一个可能与您的系统略有不同的在线版本)
返回值
成功时, inet_net_ntop()会返回 pres 。出错,它返回NULL, 并设置 errno 以指示错误原因。
pres
是其中一个参数。所以它返回你给它的相同指针,除非出现错误。