既にコメントされているかもしれませんが…。 自分の認識では以下の通り。 まず、配列は領域の場所への参照値(ポインタ?)である。 その領域が何処からも参照されなくなったら自動的に消える。 なので別の変数に代入したりで領域の参照元の変数を増やしていなければ新たにサイズ0で確保した領域をその変数に代入すれば、前に参照していた領域は解放される。 また、関数内で宣言した配列は関数をぬけると領域開放されるので、その配列を確保したしたままにしたい場合は、関数外の変数(グローバル変数、引数で渡された変数)に代入しておけば確保されたままになる。 仕様がちゃんと確認できている訳ではないので間違っていたらすみません。 ダイレクトモードが在るのはクローバル変数の領域が確保されたままになっているから? よくわかりません^^;