Maison > développement back-end > C++ > le corps du texte

En quoi l'allocation de mémoire en C diffère-t-elle dans VC6 par rapport aux compilateurs plus récents ?

Mary-Kate Olsen
Libérer: 2024-11-17 11:03:01
original
886 Les gens l'ont consulté

How Does Memory Allocation in C   Differ in VC6 Compared to Newer Compilers?

Nouvelle allocation en C

En C , lorsque le nouvel opérateur ne parvient pas à allouer de la mémoire, il lève une exception std::bad_alloc. Cependant, certains compilateurs, tels que VC6, s'écarteraient de cette norme.

Comportement VC6

VC6 n'adhère pas à la norme C et renvoie à la place 0 (ou NULL ) lorsque l'allocation de mémoire échoue. Cette non-conformité peut conduire à un code qui semble désordonné en raison de la nécessité constante de vérifier NULL après chaque nouvelle instruction.

Résolution

Microsoft reconnaît ce problème dans Knowledge Article de base KB276944. Pour contourner ce problème dans VC6, MSVC permet la liaison avec un nouveau gestionnaire personnalisé. Dans les compilateurs MSVC plus récents (7.0 et versions ultérieures), la liaison avec le fichier objet nothrownew.obj offre le même comportement que VC6.

VS2005 et au-delà

MSVC 8.0 (VS2005 ) a introduit un changement où new augmente désormais systématiquement std::bad_alloc par défaut. L'option permettant de renvoyer 0 peut toujours être spécifiée à l'aide du paramètre std::nothrow, comme indiqué dans l'exemple de code fourni. Il s'agit d'une solution rétrocompatible qui permet au code de fonctionner avec n'importe quelle version du compilateur.

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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal