Cuando enciendas tu computadora, aparecerá la siguiente ventana
La aplicación no verificó el error de asignación de memoria
Cuando el programa necesita una parte de la memoria para guardar datos, necesita llamar a la "función función" proporcionada por el sistema operativo para aplicar Si la asignación de memoria es exitosa, la función devolverá la dirección del área de memoria recién abierta al programa de aplicación, y el programa de aplicación puede usar esta memoria a través de esta dirección. Esto es "asignación de memoria dinámica", y la dirección de memoria también es el "puntero" en la programación.
La memoria no siempre está disponible y es inagotable y, en ocasiones, la asignación de memoria falla. Cuando la asignación falla, la función del sistema devolverá un valor de 0. En este momento, el valor de retorno "0" ya no representa el puntero recién habilitado, sino una notificación enviada por el sistema a la aplicación, informándole que se ha producido un error. ha ocurrido. Como aplicación, debe verificar si el valor de retorno es 0 después de cada solicitud de memoria. Si es así, significa que ha ocurrido una falla y se deben tomar algunas medidas para salvarla. Esto mejora la "robustez" del programa.
Si la aplicación no verifica este error, pensará que este valor es un puntero utilizable asignado según la "inercia del pensamiento" y continuará usando esta memoria en ejecuciones posteriores. El área de memoria real en la dirección 0 almacena la "tabla de descriptores de interrupción" más importante del sistema informático y las aplicaciones no pueden utilizarla en absoluto. En un sistema operativo sin un mecanismo de protección (como DOS), escribir datos en esta dirección provocará una falla inmediata. En un sistema operativo robusto, como Windows, esta operación será capturada inmediatamente por el mecanismo de protección del sistema y el resultado. es El sistema operativo cierra a la fuerza la aplicación errónea para evitar que el error se propague. En este momento, aparecerá el error de "memoria de escritura" mencionado anteriormente, que indica que la dirección de memoria a la que se hace referencia es "0x00000000".
Hay muchas razones por las que falla la asignación de memoria. La memoria insuficiente, la versión no coincidente de las funciones del sistema, etc., pueden tener un impacto. Por lo tanto, este tipo de falla en la asignación es más común después de que el sistema operativo se ha utilizado durante mucho tiempo, después de que se han instalado una variedad de aplicaciones (incluidos programas de virus que se "instalaron" inadvertidamente) y una gran cantidad de parámetros y parámetros del sistema. Los archivos del sistema han sido modificados.
2. La aplicación hace referencia a un puntero de memoria anormal debido a su propio error.
En aplicaciones que usan asignación dinámica, a veces habrá una situación como esta: el programa intenta leer y escriba un bloque de memoria "Debería estar disponible", pero por alguna razón, el puntero disponible esperado ha caducado. Puede ser que "se haya olvidado" de solicitar la asignación al sistema operativo, o puede ser que el propio programa haya cerrado sesión en esta memoria en algún momento sin "prestar atención", etc. El sistema recupera la memoria no registrada y sus derechos de acceso ya no pertenecen a la aplicación. Por lo tanto, las operaciones de lectura y escritura también activarán el mecanismo de protección del sistema. El único destino de un programa que intenta ser "ilegal" es terminar. por la operación y todos los recursos serán recuperados. ¡Las leyes en el mundo de la informática siguen siendo mucho más efectivas y estrictas que las de los humanos!
Situaciones como esta son todos errores en el programa en sí y, a menudo, puedes reproducir el error en una secuencia específica 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 "0x00000000", sino otros números aleatorios.
Si el sistema presenta con frecuencia el mensaje de error mencionado, las siguientes sugerencias pueden ser útiles:
1. Compruebe si hay troyanos o virus en el sistema. Estos programas a menudo modifican irresponsablemente el sistema para controlarlo, provocando anomalías en el sistema operativo. Siempre debe fortalecer su conciencia sobre la seguridad de la información y nunca sentir curiosidad por los programas ejecutables de origen desconocido.
2. Actualice el sistema operativo y deje que el programa de instalación del sistema operativo vuelva a copiar la versión correcta de los archivos del sistema y corrija los parámetros del sistema. A veces, el propio sistema operativo puede tener errores, así que asegúrese de instalar el programa de actualización oficial.
3. Prueba la nueva versión de la aplicación.
Problema
Al ejecutar ciertos programas, a veces aparece un mensaje de error de memoria y luego el programa se cierra.
La memoria "0x" a la que hace referencia la instrucción "0x". Esta memoria no se puede "leer".
La memoria "0x" a la que hace referencia la instrucción "0x" no se puede "escribir".
Generalmente este fenómeno se da por varios motivos uno es el hardware, es decir, hay un problema con la memoria, y el otro es el software, que tiene muchos problemas.
Análisis de fallas
Hardware:
En términos generales, la posibilidad de problemas de memoria no es alta. Los aspectos principales son: el módulo de memoria está roto, la memoria. Hay problemas de calidad y si se mezclan dos marcas diferentes de memoria con diferentes capacidades, es fácil que sean incompatibles. Al mismo tiempo, también se debe prestar atención a los problemas de disipación de calor, especialmente después del overclocking. Puede utilizar el software MemTest para probar la memoria, lo que puede detectar minuciosamente la estabilidad de la memoria.
Si este problema ocurre si tiene módulos de memoria duales y se mezclan módulos de memoria de diferentes marcas o compra memoria de segunda mano, entonces debe verificar si hay un problema con la memoria o si incompatible con otro hardware.
Aspecto del software:
Hablemos brevemente sobre el principio: hay un lugar para almacenar datos en la memoria llamado búfer. Cuando el programa coloca los datos en una de las ubicaciones, debido a que no hay suficiente espacio, se producirá un desbordamiento. Por ejemplo: un balde sólo puede contener un kilogramo de agua. Cuando se le echan dos kilogramos de agua, se desbordará. El sistema está representado en la pantalla. Este problema ocurre a menudo en Windows 2000 y en la situación anterior. Además, también puede deberse a una mala compatibilidad entre dispositivos de hardware.
Algunos ejemplos
Ejemplo 1: Abra el navegador IE o en unos minutos aparecerá la memoria "0x00000000" a la que hace referencia el comando "0x70dcf39f". Esta memoria no se puede "leer". Para finalizar el programa, haga clic en el cuadro de mensaje "Aceptar". Después de hacer clic en "Aceptar", aparece el cuadro de mensaje "Se ha producido un error interno y una de las ventanas que está utilizando está a punto de cerrarse". Después de cerrar el mensaje, IE. navegador El dispositivo también está apagado.
Solución: Reparar o actualizar el navegador IE y aplicar un parche al mismo tiempo. Uno de los métodos de reparación que he visto es la actualización automática de Win2000, es decir, actualizar de Win2000 a Win2000. De hecho, este método consiste en restaurar el sistema a su estado inicial. Por ejemplo, si su IE se actualiza a 6.0, será reemplazado por IE5.0 después de la actualización.
Ejemplo 2: Haga doble clic en el archivo "AutoRun.exe" en el CD en Windows XP y se mostrará la memoria "0x00000078" a la que hace referencia el comando "0x77f745cc". La memoria no se puede "escribir". Para finalizar el programa, haga clic en "Aceptar", pero se ejecuta normalmente en Windows 98.
Solución: Esto puede ser un problema de compatibilidad del sistema Para sistemas winXP, haga clic con el botón derecho en el archivo "AutoRun.exe", propiedades, compatibilidad, seleccione el elemento "Ejecutar este programa en modo de compatibilidad" y seleccione. "Windows 98/Me". Si win2000 está parcheado con SP, simplemente inicie y ejecute, ingrese: regsvr32 c:\winnt\apppatch\slayerui.dll. También aparecerán las opciones de clic derecho, propiedades y compatibilidad.
Ejemplo 3: Se produce un error cuando se cierra RealOne Gold. Se ha utilizado normalmente antes, pero recientemente, la memoria "0xffffffff" a la que hace referencia el comando "0xffffffff" aparece cada vez que se cierra. La memoria no se puede "leer".
Solución: Este problema ocurrirá cuando RealOne esté cerrado cuando el método de entrada utilizado sea Microsoft Pinyin Input Method 2003 y la barra de idioma esté oculta (no hay problema cuando no está oculta), por lo que el idioma se puede mostrar antes de cerrar. barra RealOne o convierta cualquier otro método de entrada en el método de entrada actual para resolver este problema.
Ejemplo 4: My Hero Super Jieba ya no se puede jugar desde que se conectó. Cada vez que aparece "Ox060692f6" (cada cambio), la memoria "Oxff000011" a la que hace referencia el comando no se puede "leer". y finalizado. Haga clic en Aceptar para continuar.
Solución: Intenta reinstalar Hero Super Jieba. Si el problema persiste después de la reinstalación, ve al sitio web oficial para descargar la versión correspondiente del parche e inténtalo. Si todavía no funciona, tengo que probar con otro reproductor.
Ejemplo 5: haga doble clic en el acceso directo de un juego, el comando "Ox77f5cdO" hace referencia a la memoria "Oxffffffff", la memoria no se puede "leer" y se genera un error del programa Client.dat.
Solución: reinstale el controlador más reciente para la tarjeta gráfica, luego descargue e instale DirectX9.0.
Ejemplo 6: Un amigo envió un mensaje y apareció un mensaje de error en mi computadora: la memoria "0*00303033" a la que hace referencia el comando "0*772b548f" no se puede "escribir", y luego QQ Cerré sesión automáticamente, luego abrí QQ y encontré más de una docena de mensajes enviados por él.
Solución: Este es un ERROR de la otra parte al usar QQ, enviar códigos especiales y cometer errores de QQ. Siempre que aplique un parche o actualice a la última versión, todo estará bien.
Ejemplo 7: Mi computadora portátil usa el sistema XP. A veces, al cerrar una página web, aparece tbrowser.exe. Encuentra un problema y es necesario cerrar la memoria 0x03e7c738 a la que hace referencia 0x03e7c738. Aparecerá una instrucción. Esta memoria no se puede leer.
Solución: primero compruebe si hay virus y, si ha instalado un software de mejora de la navegación, desinstálelo.
Ejemplo 8: Al abrir cualquier programa desde el escritorio o menú inicio aparece un mensaje de error: La instrucción "0x..." hace referencia a la memoria "0x00000000", la cual no se puede "leer". Las elipses representan valores variables. Y abrir el programa para que no se ejecute no es un problema.
Solución: ejecute regedit para ingresar al registro. En HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellExecuteHooks, solo debe haber un valor de clave normal "{AEB6717E-7E19-11d0-97EE-00C04FD91972". }, elimine las demás (por supuesto, no elimine las claves predeterminadas)
Ejemplo 9: Configuré una máquina hace tres meses y el sistema es relativamente inestable y lo he reinstalado muchas veces en tres meses. El sistema se instaló hace cuatro o cinco días, pero los errores de la aplicación Explorer a menudo ocurren aleatoriamente. La memoria "0x00000000" a la que hace referencia el comando "0x4a01259d" no se puede "leer". depure el programa, haga clic en "Cancelar". Si hace clic en Aceptar, el escritorio de Windows desaparecerá. Este problema también ocurrió en sistemas anteriores. Me pregunto si es un problema de hardware. ¡Problema de compatibilidad! Si encuentra este tipo de problema, puede abrir la máquina y ajustar la ubicación de la memoria para ver si el problema persiste, puede intercambiar la memoria con su amigo. >A través de los ejemplos anteriores, puede ver que hay muchas razones para el fracaso. Las razones mencionadas y posibles se enumeran a continuación para facilitar su consulta.
Causa del problema - solución
El módulo de memoria está roto - reemplace el módulo de memoria
La memoria dual no es compatible - use la misma marca de memoria o Utilice solo una pieza de memoria
Problema de calidad de la memoria: reemplace el módulo de memoria
Problema de disipación de calor: fortalezca la disipación de calor dentro del chasis
La memoria y la placa base no están enchufados correctamente o no están conectados correctamente Otro hardware es incompatible, etc. - vuelva a insertar la memoria o cambie el enchufe
Hay un problema con el disco duro: reemplace el disco duro
p>
Hay un problema con el controlador: reinstale el controlador. Si es un sistema nuevo, primero debe instalar el controlador de la placa base
El software está dañado - reinstale el software
El software tiene errores - parcheelo o use la última versión.
El software no es compatible con el sistema: parchee el software o pruebe el modo de compatibilidad del sistema.
Existe un conflicto entre el software y el software, si se ha instalado algún software nuevo. recientemente, desinstálelo Pruébelo
Hay un problema si el software necesita usar otro software relacionado: reinstale el software relacionado. Por ejemplo, si se produce un error al reproducir un archivo de un determinado formato, puede haber un problema con el decodificador de ese archivo
Problema de virus - antivirus
Antivirus El software entra en conflicto con el sistema o el software, debido a que el software antivirus ingresa al sistema de monitoreo subyacente. Puede entrar en conflicto con algún software. Intente desinstalarlo.
Hay un problema con el sistema en sí, a veces existe. Hay errores en el propio sistema operativo. Preste atención a la instalación del programa de actualización oficial, como Es mejor aplicar el parche SP. Si eso aún no funciona, reinstale el sistema o cambie a otra versión del sistema.
Este problema ha llamado nuestra atención y tenemos una solución. Visite nuestro sitio web oficial para conocer y descargar los programas relevantes.
Al ejecutar algunos programas, a veces aparecerá un mensaje de error de memoria y luego el programa se cerrará.
La memoria "0x" a la que hace referencia la instrucción "0x". Esta memoria no se puede "leer".
La memoria "0x" a la que hace referencia la instrucción "0x" no se puede "escribir".
Creo que todos han visto la situación anterior, y algunos internautas incluso han reinstalado el sistema repetidamente porque no estaban contentos con este mensaje de error que aparecía con frecuencia. Creo que los usuarios normales no entenderán esos complicados códigos hexadecimales.
Hay muchos aspectos de este fenómeno. Uno es el hardware, es decir, los problemas de memoria, y el otro es el software.
1: Hablemos primero del hardware:
En términos generales, el hardware de la computadora no es fácil de romper. La posibilidad de problemas de memoria no es alta (a menos que su memoria sea realmente una basura. Los aspectos principales son: 1. El módulo de memoria está roto (principalmente memoria de segunda mano), 2. Se utiliza memoria con problemas de calidad, 3. La parte del dedo dorado donde se inserta la memoria en la placa base tiene demasiado polvo. 4. Utilice diferentes marcas de memoria con diferentes capacidades, lo que genera incompatibilidad. 5. Problemas de disipación de calor causados por el overclocking. Puede utilizar el software MemTest para probar la memoria, lo que puede detectar minuciosamente la estabilidad de la memoria.
2. Si no hay ningún problema, solucione el problema del software.
Hablemos primero del principio: hay un lugar en la memoria para almacenar datos llamado búfer. Cuando el programa coloca los datos en el búfer, necesita la "función funcional" proporcionada por el sistema operativo. para aplicar Si la asignación de memoria es exitosa, la función La dirección del área de memoria recién abierta se devolverá al programa de aplicación, y el programa de aplicación puede usar esta memoria a través de esta dirección. Esto es "asignación de memoria dinámica" y la dirección de memoria es el "cursor" en la programación. La memoria no siempre está disponible y es inagotable y, a veces, la asignación de memoria falla. Cuando la asignación falla, la función del sistema devolverá un valor de 0. En este momento, el valor de retorno "0" ya no representa el cursor recién habilitado, sino una notificación enviada por el sistema a la aplicación para informarle que se ha producido un error. ha ocurrido. Como aplicación, debe verificar si el valor de retorno es 0 después de cada solicitud de memoria. Si es así, significa que ha ocurrido una falla y se deben tomar algunas medidas para salvarla. Esto mejora la "robustez" del programa.
Si la aplicación no verifica este error, pensará que este valor es el cursor disponible que se le asignó según la "inercia de pensamiento" y continuará usando esta memoria en ejecuciones posteriores. El área de memoria real en la dirección 0 almacena la "tabla de descriptores de interrupción" más importante del sistema informático y las aplicaciones no pueden utilizarla en absoluto. En un sistema operativo sin un mecanismo de protección (como DOS), escribir datos en esta dirección provocará una falla inmediata. Sin embargo, en un sistema operativo robusto, como Windows, esta operación será capturada inmediatamente por el mecanismo de protección del sistema y. el resultado es que el sistema operativo cierra a la fuerza la aplicación errónea para evitar que el error se expanda. En este momento, aparecerá el error de "lectura" de la memoria mencionada anteriormente, que indica que la dirección de memoria a la que se hace referencia es "0x00000000". Hay muchas razones por las que falla la asignación de memoria. La memoria insuficiente, las versiones no coincidentes de las funciones del sistema, etc., pueden tener un impacto. Por lo tanto, este tipo de falla en la asignación es más común después de que el sistema operativo se ha utilizado durante mucho tiempo, después de que se instalan una variedad de aplicaciones (incluidos programas de virus que se "instalan" inadvertidamente) y una gran cantidad de parámetros y sistemas del sistema. Se cambian los archivos.
En aplicaciones que utilizan asignación dinámica, a veces habrá una situación en la que el programa intenta leer y escribir una parte de la memoria que "debería estar disponible", pero por alguna razón, el cursor disponible esperado ha caducado . Puede ser que "se haya olvidado" de solicitar la asignación al sistema operativo, o puede ser que el propio programa haya cerrado sesión en esta memoria en algún momento sin "prestar atención", etc. El sistema recupera la memoria no registrada y sus derechos de acceso ya no pertenecen a la aplicación. Por lo tanto, las operaciones de lectura y escritura también activarán el mecanismo de protección del sistema. El único destino de un programa que intenta ser "ilegal" es terminar. por la operación y todos los recursos serán recuperados. ¡Las leyes en el mundo de la informática siguen siendo mucho más efectivas y estrictas que las de los humanos! Situaciones como esta son todos errores en el programa en sí y, a menudo, puede reproducir el error en una secuencia específica de operaciones. El cursor no válido no siempre es 0, por lo que la dirección de memoria en el mensaje de error no es necesariamente "0x00000000", sino otros números aleatorios.