From crypt(3) - Linux man page:
char *crypt(const char *key, const char *salt);
Return Value:
A pointer to the encrypted password is returned. On error, NULL
is returned.
Since the return value is unknown unless key and salt is given, this should be dynamically allocated memory, but va开发者_C百科lgrind doesn't agree.
From the man page:
The return value points to static data whose content is overwritten by each call.
So this means it's not dynamically allocated - it's a single static allocation (just like a global variable).
From the page you linked:
The returned value points to the encrypted password, a series of 13 printable ASCII characters (the first two characters represent the salt itself). The return value points to static data whose content is overwritten by each call.
精彩评论