Zerostringについてお聞きします。
文字列が返るAPIを使う時に予めメモリを確保するのに使う事と、
使わなくてもなぜか平気だったりするが、実は良くないのというのは
なんとなくわかりました。
では以下の場合はどうなるのでしょう。
コード: 全て選択
Dim buffer As String
a=色々計算しstring型にしたもの
buffer = a
b=色々計算しstring型にしたもの
buffer = buffer + a
・
・cを追加で足す、dを追加で足すという感じで繰り返し
・
最終的にbufferをテキストファイルに書き込む
文字列が返るAPIは使って無いのですが、
こういう場合もbufferはZerostringでメモリ確保する必要があるのでしょうか?
その時は勝手にメモリを確保してくれるのでしょうか?
(予め確保しなければならない場合、バイト数が最終的な所でしか
分からないのですがその時は多めに確保しておくのでしょうか?)
それと自分でプロシージャ(Function)を作って、
戻り値がstring型の場合はどうなのでしょうか?
さらに、一度確保すれば、その後もずっと有効なのでしょうか?
無効になるとすればどんな時なのでしょうか。
確保されてないと必ず作ったソフトが落ちるとか、
コンパイルできないとかなら自分で試せばよいのですが、
普通にコンパイルは通るし、いつも必ず落ちる訳ではないし
(関係ないと思ってたファイルオープンダイアログを開いた時に、急に落ちたり)、
デバッグでも何もでないので一体何が起こってるのか分からないのです。
(色々いじってバグが出なくなって安心してると、出たりする)
検索しても役立つ情報がなく困っています。
なのでZerostringはどういうときに必要でどのように使うのか、
なぜ使わなくても作ったソフトが普通に使えたりするのか教えてください。
長文ですみませんが、どうか、宜しくお願いします。