in

c ++ – ¿Cuándo obtiene un proceso SIGABRT (señal 6)?

apple touch icon@2

Daré mi respuesta desde un programación competitiva (cp) perspectiva, pero también se aplica a otros dominios.

Muchas veces, al hacer cp, las restricciones son bastante grandes.

Por ejemplo : Tenía una pregunta con variables N, M, Q tal que 1 ≤ N, M, Q < 10^5.

El error que estaba cometiendo fue que declaré una matriz de tamaño entero 2D 10000 x 10000 en C++ y luché con el SIGABRT error en Codechef durante casi 2 días.

Ahora, si calculamos:

Tamaño típico de un número entero: 4 bytes

No de celdas en nuestra matriz: 10000 x 10000

Tamaño total (en bytes): 400000000 bytes = 4 * 10 ^ 8 ≈ 400 MB

Sus soluciones a tales preguntas funcionarán en su PC (no siempre), ya que puede permitirse este tamaño.

Pero los recursos en los sitios de codificación (jueces en línea) se limitan a unos pocos KB.

Por lo tanto, la SIGABRT error y otros errores similares.

Conclusión:

En tales preguntas, no debemos declarar una matriz o vector o cualquier otro DS de este tamaño, pero nuestra tarea es hacer que nuestro algoritmo sea tan eficiente que funcione sin ellos (DS) o con menos memoria.

PD : Puede haber otras razones para este error; arriba fue uno de ellos.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

XML: codificación

zvnQoDLDkvaJzCrH5YvfWU 1200 80

Ubicaciones de Sekiro Headless: Cómo encontrar y derrotar a los cinco jefes opcionales