En Linux, gcc muestra "error de segmento (núcleo volcado)" y Ubuntu no se puede usar al principio. ¡Quién sabe cuál es el problema!
Existen varias razones para esta situación:
1. Error de acceso a la memoria
Una manifestación típica de este tipo de problema es la matriz fuera de límites.
2. Acceso ilegal a la memoria
Este tipo de problema se debe principalmente a errores provocados por el programa que intenta acceder a la memoria del segmento del kernel.
3. Desbordamiento de pila
El espacio de pila predeterminado asignado por Linux para un proceso es 8M. Las variables y nuevas operaciones en aplicaciones C++ se aplican a las variables en el montón, y otras variables generalmente se almacenan en la pila.
Por lo tanto, pueden surgir problemas si la matriz es demasiado grande.
Extensión:
Notas
Un error de segmento generalmente significa que la memoria a la que se accede excede el espacio de memoria proporcionado por el sistema para el programa. Este valor generalmente está representado por. gdtr y Un registro de 48 bits, 32 bits de los cuales se almacenan en la tabla gdt, los últimos 13 bits se almacenan en el índice gdt y los últimos 3 bits incluyen si el programa está en la memoria y el nivel de ejecución del programa en la CPU. gdt es una tabla de 64 bits que guarda las direcciones iniciales del segmento de código del programa y del segmento de datos, así como los límites de segmento correspondientes y los intercambios de páginas, así como el nivel de tiempo de ejecución del programa y la información de granularidad de la memoria. Esta tabla guarda las direcciones iniciales del segmento de código y del segmento de datos del programa, así como los límites de segmento correspondientes y la información de intercambio de páginas, así como el nivel de ejecución del programa y la información de granularidad de la memoria.
Una vez que ocurre un acceso fuera de límites en el programa, la CPU generará una excepción para evitar que esto suceda, lo que resultará en una falla de segmentación. Esto se debe básicamente al uso incorrecto de punteros en la programación.