Ej 5 - Error "Stack smashing detected"

Ej 5 - Error "Stack smashing detected"

de Sofía Belén Torres Gioia -
Número de respuestas: 3

Hola, buenas tardes.
Estaba haciendo el ejercicio 5, y corrí un caso de prueba para probar el código, pero me encuentro con este error:

Lo que me resulta raro es que me tira un número rarísimo, el arreglo ordenado y después el error.

Por lo que leí es por el mecanismo de protección usado (en mi caso g++) para detectar errores de buffer overflow (que igual tengo poca idea de lo que esto significa, sinceramente), en otro lado leí que también es algo así como haber sobreescrito algún stack.

Quisiera saber si alguien me podría ayudar a entender mejor lo que esto significa y las razones. Aquí está el código:


¡Muchas gracias!

En respuesta a Sofía Belén Torres Gioia

Re: Ej 5 - Error "Stack smashing detected"

de Sofía Belén Torres Gioia -
además de que si después lo vuelvo a correr no me aparece el error, me aparece un número cualquiera (cuando el arreglo que yo puse de prueba tiene tamaño 2):

En respuesta a Sofía Belén Torres Gioia

Re: Ej 5 - Error "Stack smashing detected"

de Lucas Fernandez Corbo -
Buenas, al estar manejando arreglos no te olvides que van del índice 0 al n-1, en el for que tenes la variable k, estas accediendo a la posición k, por lo que estas intentando insertar un valor afuera de la memoria asignada para el arreglo. Espero te ayude!