Maison > développement back-end > C++ > Quand dois-je utiliser le « nouvel » opérateur en C ?

Quand dois-je utiliser le « nouvel » opérateur en C ?

DDD
Libérer: 2024-11-30 10:51:11
original
804 Les gens l'ont consulté

When Should I Use the

Quand utiliser le « nouveau » en C ?

En tant que développeur passant de C#/Java, comprendre l'instanciation d'objet en C peut être déroutant . Cet article clarifie quand employer l'opérateur « nouveau » et quand s'en abstenir.

Utiliser « nouveau » : assurer la longévité des objets

Utilisez « nouveau » lorsque vous souhaitez qu'un objet persiste jusqu'à ce qu'il soit explicitement supprimé. Sans « nouveau », l’objet sera détruit une fois hors de portée. Considérez les exemples suivants :

void foo() {
  Point p = Point(0,0); // p is destroyed here
}

for (...) {
  Point p = Point(0,0); // p is destroyed after each iteration
}
Copier après la connexion

Utilisation de "new" pour les tableaux

Les tableaux en C sont alloués sur place (c'est-à-dire sur la pile). Cependant, si vous devez créer un tableau avec une taille déterminée au moment de l'exécution, vous devez l'allouer en utilisant "nouveau".

void foo(int size) {
   Point* pointArray = new Point[size];
   ...
   delete [] pointArray;
}
Copier après la connexion

Allocation sur place (sans "nouveau")

L'allocation sur place est préférable pour des raisons de performances. Cela se produit automatiquement pour les objets déclarés dans les classes.

class Foo {
  Point p; // p will be destroyed when Foo is
};
Copier après la connexion

N'oubliez pas que l'allocation et la libération d'objets à l'aide de « nouveau » nécessitent plus de calculs que l'allocation sur place. Utilisez-le uniquement lorsque cela est nécessaire pour éviter des frais généraux inutiles.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal