Se define como violación de acceso (violación del segmento o access violation y segmentation fault en Inglés) al intento fallido de acceso a información o a programas a los que no se tiene autorización para ver o modificar. Este mensaje puede ser causado por la configuración de software, por los programadores o por fallo en el hardware, siendo los más comunes los 2 primeros.
Con los sistemas operativos actuales, cada proceso tiene uno o más segmentos de la memoria del sistema donde puede almacenar y recuperar la información. Cada proceso puede solicitar más o menos memoria (según lo requiera), y la petición será reconocida por el sistema operativo y comparada con la sección de memoria concedida para el proceso. Generalmente, el proceso que solicitó la memoria es el único que puede leerla o modificarla.
Una violación de acceso ocurre cuando un proceso trata de acceder a una parte de la memoria asignada a otra aplicación, o a un área no usada de la memoria, no teniendo los permisos para hacerlo. Normalmente se produce como resultado de un error de programación, por ejemplo, un puntero descarriado. Otra forma en que podría producirse un "segmentation fault" es con una memoria dañada físicamente, puesto que algún programa escribirá en la memoria y luego intentará acceder a esos datos pero al tener un fallo la memoria posiblemente los datos se hayan borrado y por ende el programa considerará esa dirección de memoria como vacía, o sea no usada, con lo que resolverá en error.