2010-01-27 5 views
4

:crypt() 함수에 메모리 누수가없는 이유는 무엇입니까? <a href="http://linux.die.net/man/3/crypt" rel="nofollow noreferrer">crypt(3) - Linux man page</a>에서

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

반환 : 암호화 된 암호에 대한 포인터가 반환됩니다 . 오류시에는 NULL이 리턴됩니다.

key와 salt를 지정하지 않으면 반환 값이 알려지지 않으므로 동적으로 할당 된 메모리 여야하지만 valgrind는 일치하지 않습니다. 당신이 링크 된 페이지에서

답변

8

:

반환 값 포인트 내용 각 호출에 의해 덮어 쓰기 정적 데이터 합니다.

이것은 동적 할당이 아니라는 것을 의미합니다. 이는 전역 변수와 마찬가지로 하나의 정적 할당입니다.

3

는 :

암호화 된 암호에 대한 반환 값 포인트, 13 개 인쇄 가능한 ASCII 문자의 시리즈는 (처음 두 문자는 소금 자체를 나타낸다). 반환 값은 각 호출에 의해 내용이 덮어 쓰여지는 정적 데이터를 가리 킵니다. 남자 페이지에서