web-dev-qa-db-ja.com

C ++クラスポインターのメンバーは自動的にヒープ上にありますか?

struct Vector2i { int x = 0, int y = 0 };があるとしましょう

そして、Vector2i* pointer = new Vector2i;を介してそれへのポインターを作成しますint xint yはどこに保存されますか?ヒープまたはスタック?

血管があるため、インスタンスのすべてのメンバーはヒープ上でポインターが自動的にポイントしていますか?スタックのメンバーは自動的にスタックに船を作成しましたか?スタック上に作成されたクラス内のポインターはどうですか?

事前に感謝し、このトピックに関連する記事を私に遠慮なく教えてください(私の用語はおそらく悪いです)

3
Farrrbi

構造体のメモリがヒープ上にある場合、構造体とそのメンバーは別個のメモリチャンクではないため、そのメンバーもそうです。実際、構造体は一方向に配置することすら存在せず、構造体のデータフィールドを表し、格納する連続したメモリ領域のみです。もちろん、構造体へのポインタがある場合、ポインタはそれ自体の個別のメモリチャンクに存在しますが、構造体に割り当てられるメモリは通常、分割できないメモリのチャンクです。

6
user204677