Ubuntu no se puede programar.
I. Errores en el acceso a la memoria
Un representante típico de este tipo de problema es la matriz fuera de límites.
En segundo lugar, acceso ilegal a la memoria
Este tipo de problema se debe principalmente a errores en el programa que intenta acceder a la memoria del segmento del kernel.
En tercer lugar, desbordamiento de pila
De forma predeterminada, Linux asigna 8 M de espacio de pila a un proceso. Cuando C ++ solicita variables, las variables solicitadas por la nueva operación están en el montón y otras variables generalmente se almacenan en la pila.
Entonces, si la matriz es demasiado grande, ocurrirá este problema.
Datos extendidos:
Cosas a tener en cuenta
Una falla de segmentación generalmente significa que la memoria a la que se accede excede el espacio de memoria del programa proporcionado por el sistema. Por lo general, este valor lo guarda gdtr, que es un registro de 48 bits, de los cuales 32 bits se guardan en la tabla gdt a la que apunta, los últimos 13 bits se guardan en el subíndice correspondiente a 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 apunta a una tabla de 64 bits. En esta tabla, se almacenan las direcciones iniciales del segmento de código y del segmento de datos, los límites de segmento correspondientes y los intercambios de páginas, los niveles de ejecución del programa, la granularidad de la memoria, etc.
Una vez que un programa tiene acceso fuera de los límites, la CPU generará la protección de excepción correspondiente y se producirán fallas de segmentación. Básicamente es causado por el uso incorrecto de punteros en la programación.