Siéntete en la libertad de compartir nuestra página y códigos en tus redes, danos de tu ayuda para ampliar esta comunidad.
Solución:
¡Deja que el compilador te diga qué está mal!
Si compiló su programa con las advertencias habilitadas, el compilador le diría algo como esto:
¿Porqué es eso? Eso es porque std::size_t
es un no firmado escriba en C++; solo representa números no negativos. Obtenga más información sobre cómo activar las advertencias y por qué es importante: ¿Por qué siempre debo habilitar las advertencias del compilador?
Así que cómo debería iteramos a la inversa?
Decidí dividir mi respuesta aquí en una pregunta separada, independiente del error de OP. Por favor ve a leerlo.
El problema es ese size_t
es un no firmado entero, es decir, sólo puede tener valores positivos. Cuando disminuye 0 para un tipo sin signo, ocurre un subdesbordamiento y el resultado suele ser el entero más grande representable por ese tipo, por ejemplo, 18446744073709223794 en su caso. Finalmente el cheque de i >= 0
es siempre true para cualquier tipo sin firmar y su ciclo nunca terminará.
Reseñas y valoraciones
Agradecemos que quieras añadir valor a nuestra información dando tu veteranía en las crónicas.