Double Possible:
( POD )la libération de la mémoire : delete[] égal à supprimer ?Quand j'ai appris le C++, c'était il y a longtemps. On m'a dit de ne jamais utiliser d'
delete
maisdelete[]
, le spectacle d'delete[]
sur un seul objet sera équivalent àdelete
. En sachant ne pas faire confiance à des enseignants de trop, je me demande, Est-ce vrai?Est-il toujours une raison d'appeler à l'
delete
au lieu dedelete[]
?J'ai scanné le peut-être liés à des questions de la SORTE, mais je n'ai pas trouvé de réponse claire.
- Est-ce que delete [] est égal à supprimer? (5 réponses )
Réponses
Trop de publicités?De la norme (5.3.5/2) :
Dans la première variante (supprimer de l'objet), la valeur de l'opérande de supprimer doit être un pointeur vers un non-objet tableau ou un pointeur vers un sous-objet (1.8) soit une base de la classe d'un tel objet (article 10). Si pas, le comportement est indéfini.
Dans la seconde variante (supprimer tableau), la valeur de l'opérande de supprimer doit être la valeur du pointeur à la suite du tableau précédent new-expression. Si non, l' le comportement est indéfini.
Donc, non : ils ne sont en aucune façon équivalente !