моя функция:
struct hostent * gethost(char * hostname){
if(/*some condition under which I want
to change the mode of my program to not take a host*/){
return null
}
else{
struct hostent * host = gethostbyname(hostname);
return host;
}
}
в основном:
struct hostent * host = gethost(argv[2]);
(игнорировать любые незначительные ошибки в коде, которые я извергаю из памяти)
это отлично работает. и Вальгринд не говорит мне, что я теряю память, несмотря на то, что я не освобождаю.
Почему? Я думал, что вещи, размещенные в стеке, исчезают при возврате вызова функции? или это потому что я возвращаю указатель? это опасно в любом случае?