Articles

Índice de matriz fuera de límites – Foro de C++

los vectores tienen muchas cosas buenas a su favor.
Pero los arrays de c++, si usan una compilación forzada estándar, DEBEN tener un tamaño conocido en tiempo de compilación (no puede ser una variable, solo un valor conocido en tiempo de compilación como enum, const int, número literal, etc.).) Siempre debe saber el tamaño de su matriz y nunca salirse de los límites debido a esto. Por lo tanto, si bien debe preferir los vectores en general, a veces heredará código que tiene matrices, o tendrá que lidiar con un archivo C en su compilación, o similares, por lo que necesita conocer los conceptos básicos. Por lo general, el tamaño es una enumeración o const en algún lugar con un nombre que puede usar cuando se realiza un bucle para mantenerlo seguro. Si usa matrices por cualquier razón, use esta idea y evitará la mayoría de los problemas fuera de los límites. Los otros problemas también pueden ocurrir en vectores, aquellos en los que calculó el índice y lo equivocó, pero los vectores le brindan las herramientas para verificar esto, mientras que las matrices tienen menos opciones para manejar errores. c++ es un lenguaje de alto rendimiento. NO hace trabajo innecesario detrás de escena en general, tienes que HACER que lo haga si lo deseas. Así que si quieres comprobar los límites, necesitas código para hacerlo. por cierto, también puedes salirte de los límites de un vector.
vector <int> duh = {1,2,3};
cout << duh; //fuera de los límites. accidente, lo más probable.
no es que el vector esté comprobando los límites o sea ‘más seguro’ cuando lo estropeas. Es que tiene su propia variable de tamaño administrada, por lo que meter la pata debería ser más difícil, si está escribiendo su código con cuidado.