ホームページ > バックエンド開発 > C++ > C で `new` キーワードを使用する必要があるのはどのような場合ですか?

C で `new` キーワードを使用する必要があるのはどのような場合ですか?

DDD
リリース: 2024-12-28 22:08:14
オリジナル
196 人が閲覧しました

When Should You Use the `new` Keyword in C  ?

C で新しいキーワードが必要になるのはどのような場合ですか?

C では、オブジェクトを作成するには 2 つのオプションがあります。 new キーワードを使用するか、またはではありません。

を使用していますnew

MyClass* myClass = new MyClass();
myClass->MyField = "Hello world!";
ログイン後にコピー
  • ヒープ上のオブジェクトにメモリを割り当てます (空きストア)。
  • 割り当てられたメモリを解放するには、明示的な削除が必要です。
  • オブジェクトが削除されるまでメモリは割り当てられたままになります。 scope.

new を使用しない

MyClass myClass;
myClass.MyField = "Hello world!";
ログイン後にコピー
  • スタック上のオブジェクトにメモリを割り当てます。
  • 明示的な削除はありません必須です。
  • オブジェクトがなくなると、メモリは自動的に解放されます。範囲。

選択に関する考慮事項

どの方法を使用するかは、特定のニーズによって異なります。

  • 使用new:

    • ヒープ上にオブジェクトを作成します。
    • 関数からオブジェクトへのポインタを返します。
  • 使用しないでくださいnew:

    • メモリの手動管理とメモリ リークの可能性を回避します。
    • 現在のスコープを離れないオブジェクトを作成します。

追加注

  • new を使用するには、割り当てられたメモリを解放するために delete を使用する必要があります。これはメモリ リークを防ぐためです。
  • new は通常、ヒープ上にオブジェクトを作成するために使用されますが、new を使用しない場合は通常、スタックに割り当てられたオブジェクトに使用されます。
  • スタックのメモリ容量は、そのため、スタックにオブジェクトを割り当てすぎると、スタック オーバーフローが発生する可能性があります。

以上がC で `new` キーワードを使用する必要があるのはどのような場合ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート