ポインターを解放することについて、一種の理論的な質問があります。
一部の人 (プログラム自体または OS) は、ポインターとそれらの長さを追跡する必要があると思います。なんで?
float* pointer1 = malloc( 100 * sizeof(float) );
例: ここに float ポインターがあります。誰かが私のpointer1配列の長さを教えてもらえますか? 実行時に関数/メソッドを呼び出してそのポインターの長さを取得する方法はありませんか? したがって、プログラム (または OS) は、実行時に実際の長さを知らなくても、ポインターのメモリ部分を解放する方法は次のとおりです。
free(pointer1);
プログラムが解放へのポインタの長さを知っていた場合、なぜその情報を取得できないのか、長さを追跡するために他の方法を使用しているのか. 例えば:
struct floatArray
{
float* pointer;
int length;
}
だから、私はこの問題に非常に興味があります。OSがポインターの長さをどのように処理するかを本当に知りたいです。
ありがとう、
言った。