为什么crypt()函数没有内存泄漏?

时间:2010-01-27 03:56:11

标签: c crypt

来自crypt(3) - Linux man page

char *crypt(const char *key, const char *salt);

返回值: 返回指向加密密码的指针。出错时,会返回NULL

由于除非给出key和salt,否则返回值是未知的,这应该是动态分配的内存,但是valgrind不同意。

2 个答案:

答案 0 :(得分:9)

从手册页:

  

返回值指向静态数据   其内容将被每次通话覆盖。

所以这意味着它不是动态分配的 - 它是一个静态分配(就像一个全局变量)。

答案 1 :(得分:3)

从您关联的页面:

  

返回的值指向加密密码,一系列13个可打印的ASCII字符(前两个字符代表salt本身)。返回值指向静态数据,其内容被每次调用覆盖。