基本的に間違ってます
関数内のローカル変数は基本的にスタックに確保されるので
再帰などして無限ループに陥ったりしない限りは抜けた時点で解放されています
(もちろん再帰でも適正なものは全て終わった時点で解放されている)
malloc()などはヒープ領域に確保するのでメモリの位置が全然違うと思います
実際変数のアドレスを見てみると分かるかと