Solución de error de memoria del sistema operativo Windows

  

Las personas que usan el sistema operativo Windows a veces encuentran un mensaje de error: "0x00000000 memoria referenciada por la instrucción" 0X ????????, la memoria no se puede escribir " Entonces la aplicación se cierra. Si vas a preguntar a algún "maestro", la respuesta es a menudo "Windows es tan inestable" y tanta decepción. De hecho, este error no es necesariamente causado por la inestabilidad de Windows. Este artículo es un análisis simple de las causas comunes de este error.

Primero, la aplicación no comprueba el error de asignación de memoria

Cuando el programa necesita un pedazo de memoria para guardar los datos, debe llamar al sistema operativo para proporcionar la "función de función" para aplicar, si la asignación de memoria En caso de éxito, la función devuelve la dirección del área de memoria recién creada a la aplicación, y la aplicación puede usar la memoria en esta dirección. Esta es la "asignación de memoria dinámica", la dirección de la memoria también es el "puntero" en la programación.

La memoria no siempre entra, es inagotable y, a veces, la asignación de memoria falla. Cuando falla la asignación, la función del sistema devuelve un valor de 0. En este momento, el valor de retorno "" 0" no indica el puntero recién habilitado, sino una notificación enviada por el sistema a la aplicación para informar que se ha producido un error. Como una aplicación, debe verificar si el valor de retorno es 0 después de solicitar memoria cada vez. Si es así, significa que hay una falla y se deben tomar algunas medidas para guardarla, lo que mejora la "robustez" del programa.

Si la aplicación no comprueba este error, seguirá la "inercia" pensando que este valor es el puntero disponible y continuará usándolo en ejecuciones posteriores. El área de memoria de dirección 0 real contiene la "tabla de descriptores de interrupción" más importante en el sistema informático, y la aplicación nunca se puede usar. En un sistema operativo sin un mecanismo de protección (como DOS), la escritura de datos en esta dirección causará un bloqueo inmediato. En un sistema operativo sólido, como Windows, esta operación será capturada inmediatamente por el mecanismo de protección del sistema. El resultado es El sistema operativo cierra a la fuerza la aplicación incorrecta para evitar que su error se expanda. En este momento, se producirá el error anterior "memoria de escritura", y la dirección de memoria a la que se hace referencia es "0x00000000".

Hay muchas razones por las que las fallas en la asignación de memoria, la falta de memoria, la discrepancia en la versión de la función del sistema, etc. pueden tener un impacto. Por lo tanto, esta falla en la asignación es más común después de que el sistema operativo se haya utilizado durante mucho tiempo, después de instalar una variedad de aplicaciones (incluido un programa de virus "instalado" inadvertidamente), después de cambiar una gran cantidad de parámetros y archivos del sistema.

Segundo, la aplicación se refiere al puntero de memoria anormal debido a su propio ERROR.

En la aplicación de asignación dinámica, a veces habrá una situación de este tipo: el programa intenta leer y escribir una pieza " La memoria debería estar disponible, pero no sé por qué, los punteros disponibles en esta expectativa han caducado. Puede ser que "se olvidó" del sistema operativo para solicitar la asignación, puede ser que el programa mismo haya borrado la memoria en algún momento y "no se preste atención", etc. La memoria no registrada es reclamada por el sistema y su derecho de acceso ya no está en la aplicación. Por lo tanto, las operaciones de lectura y escritura también activarán el mecanismo de protección del sistema. La única terminación del programa que intenta "ilegal" debe ser terminada por la operación, y se completa toda la recuperación. Recursos ¡Las leyes del mundo de las computadoras son aún más efectivas y más estrictas que las de los humanos!

Situaciones como esta son todos errores en el programa en sí, y con frecuencia puede reproducir errores en un orden específico de operaciones. Los punteros no válidos no siempre son 0, por lo que la dirección de memoria en el mensaje de error no es necesariamente "ldx; 0x00000000", sino otros números aleatorios.

Si el sistema menciona a menudo un mensaje de error, las siguientes sugerencias pueden ser útiles:

(1) Compruebe si hay un troyano o virus en el sistema. Tales programas a menudo modifican el sistema de manera irresponsable para controlar el sistema, lo que resulta en una excepción del sistema operativo. Es común fortalecer el conocimiento de la seguridad de la información y no tener curiosidad por los programas ejecutables de origen desconocido.

(2) Actualice el sistema operativo, permita que el instalador del sistema operativo vuelva a copiar la versión correcta del archivo del sistema y modifique los parámetros del sistema. A veces, el propio sistema operativo tendrá un error, preste atención a la instalación de la versión oficial del programa de actualización.

(3) Prueba una nueva versión de la aplicación.

Copyright © Conocimiento de Windows All Rights Reserved