スタックとヒープのオブジェクト作成
この質問では、スタックまたはヒープでのオブジェクトの作成に関する懸念が生じます。提供されているコード (Object o:) はスタック上でのオブジェクトの作成を暗示していますが、スタックやヒープについては明示的に言及していません。この違いを明確にしましょう。
C では、メモリ内のオブジェクトの位置は、具体的にはスタックやヒープではなく、その記憶期間によって決まります。ストレージ期間には、自動、動的、静的、スレッドローカルの 4 つがあります。自動ストレージは主にコール スタック上のローカル変数に使用され、動的ストレージは「new」でヒープに割り当てられたオブジェクトに使用されます。
オブジェクトの作成
コンテキストとストレージ期間
オブジェクトのストレージ期間は、そのコンテキストによって決まります。例:
ポインターとストレージ
ポインタ自体はオブジェクトであり、同じ記憶規則に従います。それらのストレージは、それらが指すタイプではなく、コンテキストによって決まります。それらが指す型によって、指すオブジェクトの保存期間が決まります。
全体として、C のメモリ管理を理解するには、保存期間を理解することが重要です。オブジェクトは、保存期間とコンテキストに応じて、異なるメモリ領域に存在できます。
以上がオブジェクトはメモリ内のどこに存在しますか?スタック、ヒープ、またはその他の場所?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。