Options du compilateur pour l'accès aux tableaux de vérification des limites dans le vecteur C
La bibliothèque standard C fournit le type std::vector, un tableau dynamique qui assure la sécurité de la mémoire. Cependant, accéder aux éléments avec l'opérateur [] comporte un risque inhérent de comportement indéfini si l'index est hors limites.
Activer la vérification des limites en mode débogage
Pour activer les limites en vérifiant l'opérateur [] dans Visual Studio, la macro _SECURE_SCL peut être définie sur une valeur non nulle. Cela appliquera la vérification de la plage pendant l'exécution, ce qui entraînera une exception std::out_of_range lors de l'accès à un index non valide.
Désactiver la vérification des limites en mode Release
Pour optimiser les performances dans les versions publiées, la vérification des limites peut être désactivée en définissant _SECURE_SCL sur 0. Cela élimine la surcharge d'exécution associée à la vérification de la plage.
Exemple :
<code class="cpp">// Enable bounds checking in debug mode (assuming Visual Studio 2008 or earlier) #ifdef _DEBUG #define _SECURE_SCL 1 #endif // ... std::vector<std::vector<int>> v; v[0][1]; // Throws `std::out_of_range` if i or j is out of bounds</code>
Remarque :
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!