C では、メモリ管理には、しばしば置き換え可能に見える 2 つの用語、つまりフリー ストアとヒープが含まれます。どちらも動的に割り当てられたメモリ領域を指しますが、実際に明確な違いはありますか?
従来、フリー ストアは、新しいメモリ領域を使用して割り当てられたメモリに関連付けられてきました。演算子を使用し、ヒープは malloc にリンクされます。ただし、この区別は主に概念的なままです。
最新の C コンパイラーでは、フリー ストアとヒープの間の境界があいまいになってきています。通常、使用される割り当て方法に関係なく、統合システムを使用してメモリ割り当てを管理します。
new/delete と malloc/free の主な操作上の違いは、コンストラクターとデストラクター。 new を使用する場合、割り当てられたオブジェクトのコンストラクターが呼び出され、delete オペレーターは割り当て解除時にオブジェクトのデストラクターを呼び出します。逆に、malloc と free はこれらの操作を自動的に実行しません。
面接中、候補者は、フリー ストア (新規/削除で使用される) とヒープ ( malloc/free によって使用されます)。これは、C メモリ管理の基本的な理解を示しています。
フリー ストアとヒープの間の概念的な分離は維持されますが、コンパイラは同じメモリ空間内に両方を実装できます。ただし、これは実装の詳細であり、コンパイラによって異なる可能性があります。
以上がC のフリー ストアとヒープの間に実際的な違いはありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。