|
ども。
>プログラムを作ったら、ポインタの配列にmallocで確保された領域
>とそうではない領域を指すポインタが混在してしまいました。
そうではない領域が何を指しているかによると思います。
1. 静的な変数を指している場合
その変数が見えればアドレスで判別可能。見えない場合は3へ。
2. 有効な領域を指していない場合(ポインタの配列を初期化していない場合)
NULLで初期化する。なお、free(NULL)は何もしない。
3. 上記以外
malloc()時に添え字を保存。スタックか、フラグテーブルを使う等、
お好きな方法を。
>mallocで確保された領域には確保した領域以外に
>制御データが保存されているらしいですがこれを使って
>何とかならないでしょうか?
何とかなるかもしれませんが、処理系に依存するので
他の方法で何とかしたほうがよろしいかと。
では。
|