割り当てられたアドレスとそのサイズはどこmalloc()
に保存されますか (Linux GCC)? free()
一部の実装では、実際に割り当てられたメモリの前にそれらを保存することを読みましたが、テストでは確認できませんでした。
背景、おそらく誰かがこれについて別のヒントを持っています:
他のプロセスの文字列の現在の値を判断するために、プロセスのヒープメモリを分析して少し実験しています。プロセス ヒープ メモリへのアクセスとその中の探索は問題ありません。ただし、文字列の値が変更され、プロセスがメモリの新しい部分を毎回割り当てるため、文字列のアドレスが変更されます。文字列の形式は固定されているため、簡単に見つけることができますが、いくつかの変更を加えた後でも、古いバージョンの文字列がヒープ メモリに残っているため (おそらく解放されますが、再利用/上書きはされません)、そのため、私にはわかりません。現在の文字列はどれですか。
したがって、現在のものを引き続き見つけるために、メモリ内で見つけた文字列がまだ使用されているかどうかを、そのアドレスとアドレスを比較して確認し、知りたいと考えていmalloc()
ますfree()
。
チャオ、エルマー