A veces, los errores pueden causar una excepción de violación de acceso a memoria.Exactamente cómo se desencadena una excepción de infracción de acceso
¿Cómo se desencadena exactamente esta excepción? ¿Qué mecanismo funciona detrás de las escenas?
¿Es necesario el apoyo de la CPU (a partir de lo que la CPU?)/Desde el sistema operativo (a partir de qué versión?)/Del compilador (a partir de qué versión?)
Editar:
Un escenario específico que quiero entender mejor:
El siguiente código puede causar una excepción de violación de acceso.
TCHAR* czXXX= _T("ABCDEFG");
czXXX[0]= 'A';
Supongo que czXXX apunta a un bloque de memoria de solo lectura, pero ¿qué ocurre exactamente?
¿Qué ocurre si la memoria RAM y el disco están llenos? –
@Scott 混合 理论 es normal que la RAM esté llena, o casi llena: la memoria RAM no utilizada se desperdicia RAM. Dado que el rendimiento se degrada cuanto más la computadora debe usar el espacio de intercambio, normalmente la gente intentará ejecutar solo el software que se ajuste a la memoria. Una vez que el espacio de intercambio está lleno, el kernel comenzará a devolver los errores para las asignaciones de memoria o eliminará los procesos completos para liberar espacio. Busque "OOM Killer" para más detalles sobre eso. – sarnold