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 }
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; }
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 };
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!