在C中执行标准的lib-free返回的char*变量

does standard lib free returned char* variables in C?

本文关键字:返回 char 变量 lib-free 执行 标准      更新时间:2023-10-16

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

如果我这样做:

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

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

总之,我想知道为什么stdio和其他一些库可以返回一个char指针,而我们甚至都不想释放它们?它们是用malloc分配的还是只在堆栈中分配的?我应该如何实现我的C(only)函数来返回一个安全的字符数组?

为什么不查看文档并找出答案?(您可以在计算机上运行man inet_net_ntop;这是一个在线版本,可能与您的系统略有不同)

返回值

成功后,inet_net_ntop()返回pres。出错时返回NULL,并且errno被设置为指示错误的原因。

CCD_ 6是其中一个参数。所以它会返回你给它的相同指针,除非有错误。