最近、次の投稿を見ました。
メモリ アロケータは、malloc より下位レベルではありません。(デフォルトのアロケータは通常、malloc を直接または間接的に呼び出します)
アロケーターを使用すると、さまざまな割り当て戦略を指定できます。たとえば、malloc を 1 回呼び出すアロケータを使用して大きなメモリ プールを取得し、その後の割り当て要求では、このプールの小さなチャンクを返すだけです。
または、メモリが割り当てられたり解放されたりするたびに追加のタスクを実行できるようにするためのフックとして使用することもできます。
2 番目の質問については、malloc は、移植性を失うことなく実行できる最低の値です。malloc は通常、OS 固有のメモリ割り当て関数を使用して実装されるため、それはまだ低レベルです。しかし、C++ アロケーターは高レベルの抽象化であるため、それは主な質問とは関係ありません。
from: C++: メモリ アロケータ
私の質問は、次のオペレーティング システムで malloc がどのように実装されているかです。
- Windows用
- Linux 用
malloc() の呼び出し/実装である OS 固有の関数は何ですか?