質問です。

char *func(){
char str[]="hogehoge";
return str;
}

void func2(){
char *str;
str=func();
}

とした場合、
func2内での、strの配列の領域が保証される寿命ってどこまでなのでしょうか?
func()抜けた瞬間、strが解放されると思ったんですが、一応暫く使えてるんですが・・・