すみません、若干スレ違いかも知れませんがどなたかお教えください。

DLL 中で malloc() して文字列を返す場合、この領域はいつまで保たれるのでしょうか?
呼び出し元のアプリが終了した時点で開放されるのか、あるいは自分で開放する必要があるのか。
DLL の関数が終了した時点で失われるということはないですよね?

環境は次の通りです。
Windows XP
Visual C++ 7.0
Delphi 5

VC で DLL を作って Delphi のアプリから呼び出すことを考えています。
よろしくお願いします。