Razones comunes por las que la memoria no se puede leer ni escribir
Las personas que usan el sistema operativo Windows a veces encuentran este tipo de mensajes de error: "La memoria 0x00000000 a la que hace referencia la instrucción 0X no se puede escribir" , Entonces la aplicación se cierra. Si pide consejo a algunos "expertos", la respuesta que obtiene suele ser indignación y desdén, como "Windows es muy inestable". De hecho, este error no se debe necesariamente a la inestabilidad de Windows. Este artículo analizará brevemente las causas comunes de este error.
1. La aplicación no verificó el error de asignación de memoria.
Cuando el programa necesita un trozo de memoria para guardar datos, necesita llamar a la "función función" proporcionada por el operador. sistema a aplicar. Si la asignación de memoria tiene éxito, 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 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. ocurrió. 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 ser terminado. 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. 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.
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".
¿Alguna vez has experimentado un fallo similar? (El contenido después de 0x puede ser diferente).
Generalmente, este fenómeno ocurre por varias razones. Una es el hardware, es decir, problemas de memoria, y la otra es el software, que tiene muchos problemas.
Hablemos primero del hardware:
En general, la posibilidad de problemas de memoria no es alta. Los aspectos principales son: el módulo de memoria está roto, la calidad de la memoria es problemática. e Incluso 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 tiene memoria dual y módulos de memoria mixtos de diferentes marcas o compró memoria de segunda mano y se produce este problema, debe verificar si hay algún problema con la memoria o con otro hardware que no sea compatible. . De lo contrario, solucione el problema del software.
Primero hablemos brevemente sobre el principio: hay un lugar en la memoria para almacenar datos llamado búfer. Cuando el programa coloca datos en una de las ubicaciones, se producirá un desbordamiento porque no hay suficiente espacio. Por ejemplo: un balde sólo puede contener un kilogramo de agua. Cuando le pones 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.
Permítanme analizarlo con algunos ejemplos:
Ejemplo 1: abra el navegador IE o dentro de unos minutos aparecerá la memoria "0x00000000" a la que hace referencia la instrucción "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: repare o actualice el navegador IE y aplique un parche. 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. Esta 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 tanto, se puede mostrar la barra de idioma o cualquier otro método de entrada. se muestra antes de cerrar RealOne como 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: intente reinstalar Hero Super Jieba. Si el problema persiste después de reinstalar, vaya al sitio web oficial para descargar la versión correspondiente del parche e inténtelo. 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.
A través de los ejemplos anteriores, puede ver que hay muchas razones para el fracaso. Aquí hay una lista de las razones mencionadas y posibles para una fácil referencia.
Solución
1. Si el módulo de memoria está roto, reemplácelo
2. Si la memoria dual es incompatible, use la misma marca de memoria o solo. utilice un módulo de memoria
p>
3. Para problemas de calidad de la memoria, reemplace el módulo de memoria
4. Para problemas de disipación de calor, fortalezca la disipación de calor dentro del chasis
p>
5. La memoria y la placa base no están conectadas correctamente o son incompatibles con otro hardware Espere a volver a insertar la memoria o cambiar el socket
6. disco, reemplace el disco duro
7. Si hay un problema con el controlador, reinstale el controlador. Si es un sistema nuevo, primero debe instalar el controlador de la placa base
8. Si el software está dañado, reinstale el software
9. o utilice la última versión.
10. Si el software no es compatible con el sistema, parchee el software o pruebe el modo de compatibilidad del sistema.
11. software, si se ha instalado algún software nuevo recientemente, desinstálelo. Pruébelo
12. El software necesita utilizar otro software relacionado y, si hay un problema, reinstale el software relacionado. Por ejemplo, cuando se produce un error al reproducir un archivo de un determinado formato, puede haber un problema con el decodificador de ese archivo
13. Problema de virus antivirus
14. El software antivirus 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.
15. A veces, el sistema operativo tendrá errores. Preste atención al instalar el 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.
Es común que aparezca una pantalla azul cuando se usa Windows y, a menudo, el sistema se reinstala con frecuencia porque la fuente del error no está clara, lo cual requiere mucho tiempo y es laborioso. A continuación se recopilan algunas contraseñas de bloqueo de Windows para su referencia.
Valor Descripción
0 0x0000 Trabajo completado.
1 0x0001 Función incorrecta.
2 0x0002 El sistema no puede encontrar el archivo especificado.
3 0x0003 El sistema no puede encontrar la ruta especificada.
4 0x0004 El sistema no puede abrir el archivo.
5 0x0005 Acceso denegado.
6 0x0006 Código no válido.
7 0x0007 El bloque de control de almacenamiento está destruido.
8 0x0008 No hay suficiente espacio de almacenamiento para procesar este comando.
9 0x0009 La dirección del bloque de control de almacenamiento no es válida.
10 0x000a El entorno es incorrecto.
11 0x000b Se intentó cargar un programa con formato incorrecto.
12 0x000c Error de código de acceso.
13 0x000d Error de datos.
14 0x000e No hay suficiente espacio de almacenamiento para completar esta operación.
15 0x000f El sistema no puede encontrar la unidad de disco especificada.
16 0x0010 No se puede eliminar el directorio.
17 0x0011 El sistema no puede mover el archivo a otra unidad.
18 0x0012 Sin archivos.
19 0x0013 El medio de almacenamiento está protegido contra escritura.
20 0x0014 El sistema no puede encontrar el dispositivo especificado.
21 0x0015 El dispositivo aún no está listo.
22 0x0016 El dispositivo no puede reconocer el comando.
23 0x0017 Error de datos (verificación de redundancia cíclica)
24 0x0018 El programa emitió un comando con una longitud incorrecta.
25 0x0019 La unidad de disco no puede encontrar el sector fijo o la pista en el disco.
26 0x001a No se puede acceder al disco o disco especificado.
27 0x001b La unidad de disco no puede encontrar el sector requerido.
28 0x001c La impresora se ha quedado sin papel.
29 0x001d El sistema no puede escribir datos en la unidad de disco especificada.
30 0x001e El sistema no puede leer el dispositivo especificado.
31 0x001f Un dispositivo conectado al sistema no funciona.
32 0x0020 el proceso no puede acceder al archivo porque está siendo utilizado por otro proceso.
33 0x0021 Parte del archivo está bloqueada y no se puede acceder a él ahora.
34 0x0022 El disco de la unidad de disco es incorrecto. Inserte 2 (número de serie del volumen: 3) en la unidad 1.
36 0x0024 Hay demasiados archivos compartidos abiertos.
38 0x0026 Se alcanzó el final del archivo.
39 0x0027 El disco está lleno.
50 0x0032 Este requisito de red no es compatible.
51 0x0033 No se puede utilizar el ordenador remoto.
52 0x0034 El nombre de la red está duplicado.
53 0x0035 No se puede encontrar la ruta de red.
54 0x0036 La red está ocupada.
55 0x0037 el recurso o dispositivo de red especificado ya no está disponible
56 0x0038 se alcanzó el límite de comandos de BIOS de red
57 0x0039 Configuración de red allí. Hubo un problema al recibir la tarjeta.
58 0x003a El servidor especificado no puede realizar la operación solicitada.
59 0x003b Se produjo un error de red inesperado.
60 0x003c La tarjeta adaptadora remota es incompatible.
61 0x003d La cola de impresión está llena.
62 0x003e El servidor no tiene espacio suficiente para almacenar archivos en espera de ser impresos.
63 0x003f El archivo en espera de ser impreso ha sido eliminado.
64 0x0040 No se puede utilizar el nombre de red especificado.
65 0x0041 Acceso a la red denegado.
66 0x0042 El tipo de recurso de red es incorrecto.
67 0x0043 No se puede encontrar el nombre de la red.
68 0x0044 Se superó el límite de nombres de la tarjeta adaptadora de red de computadora regional.
69 0x0045 Se excedió el límite de sesión de BIOS de red.
70 0x0046 El servidor remoto ha sido suspendido o se está iniciando.
71 0x0047 No se pueden realizar más conexiones a esta computadora remota en este momento porque el número de conexiones ha alcanzado el límite superior.
72 0x0048 La impresora o el dispositivo de disco especificados han sido suspendidos.
80 0x0050 El archivo ya existe.
82 0x0052 No se puede crear un directorio o archivo.
83 0x0053 int 24 falló
84 0x0054 No se puede utilizar el almacenamiento para manejar esta solicitud.
85 0x0055 El nombre del dispositivo local ya está en uso.
86 0x0056 La contraseña de red especificada es incorrecta.
87 0x0057 Error de parámetro.
88 0x0058 Se produjo un error de escritura de datos en la red.
89 0x0059 El sistema no puede ejecutar otros viajes en este momento.
100 0x0064 No se puede establecer otro semáforo del sistema.
101 0x0065 pertenece al semáforo dedicado a otros viajes.
102 0x0066 El semáforo se ha configurado y no se puede cerrar.
103 0x0067 No se puede especificar el semáforo.
104 0x0068 No se puede solicitar el semáforo dedicado en el tiempo de descanso.
105 0x0069 La propiedad anterior de este semáforo ha finalizado.
106 0x006a Inserte el disco en 1.
107 0x006b El programa se ha detenido porque no se ha insertado el disco sustituto.
108 0x006c El disco está en uso o bloqueado.
109 La tubería 0x006d ha sido abortada.
110 0x006e El sistema no puede abrir el dispositivo o archivo especificado.
111 0x006f El nombre del archivo es demasiado largo.
112 0x0070 Espacio en disco insuficiente.
113 0x0071 No hay ningún identificador de archivo interno disponible.
114 0x0072 El identificador del archivo interno de destino es incorrecto.
117 0x0075 La llamada ioctl realizada por la aplicación es incorrecta.
118 0x0076 El valor del parámetro de verificación de escritura es incorrecto.
119 0x0077 El sistema no admite el comando solicitado.
120 0x0078 Esta función sólo es válida en modo win32.
121 0x0079 Se excedió el tiempo de espera del semáforo.
122 0x007a El área de datos pasada a la llamada al sistema es demasiado pequeña.
123 0x007b Error de sintaxis en el nombre del archivo, nombre del directorio o etiqueta de almacenamiento.
124 0x007c El nivel de llamada al sistema es incorrecto.
125 0x007d El disco no tiene ninguna etiqueta establecida.
126 0x007e No se puede encontrar el módulo especificado.
127 0x007f No se puede encontrar el programa especificado.
128 0x0080 No hay subviajes que esperar.
129 0x0081 1 Esta aplicación no se puede ejecutar en modo win32.
130 0x0082 intento de utilizar un identificador de archivo en una partición de disco abierta para una
operación que no sea la E/S de disco sin formato
131 0x0083 intento de uso. el archivo El indicador se mueve antes del comienzo del archivo.
132 0x0084 No se puede establecer el índice del archivo en el dispositivo o archivo especificado.
133 0x0085 El comando join o subst no se puede utilizar con una unidad que se haya unido previamente.
134 0x0086 Intente utilizar el comando join o subst en la unidad de disco que se ha combinado.
135 0x0087 Intente utilizar el comando join o subst en la unidad de disco reemplazada.
136 0x0088 El sistema intenta eliminar la relación de enlace de un disco desvinculado.
137 0x0089 El sistema intenta eliminar la relación de reemplazo de la unidad de disco que no ha sido reemplazada.
138 0x008a El sistema intenta combinar la unidad de disco con el directorio de la unidad que ya se ha combinado.
139 0x008b El sistema intenta reemplazar la unidad de disco con el directorio de la unidad de disco que ha sido reemplazada.
140 0x008c El sistema intenta reemplazar la unidad de disco con el directorio de la unidad de disco que ha sido reemplazada.
141 0x008d El sistema intentó sustituir la unidad en un directorio de unidades combinado.
142 0x008e El sistema no puede ejecutar join o subst en este momento.
143 0x008f El sistema no puede combinar unidades de disco ni reemplazar directorios en la misma unidad de disco.
144 0x0090 Este directorio no es un subdirectorio del directorio raíz.
145 0x0091 El directorio aún tiene datos.
146 0x0092 La ruta especificada ha sido reemplazada.
147 0x0093 Recursos insuficientes para procesar este comando.
148 0x0094 La ruta especificada no se puede utilizar en este momento.
149 0x0095 El directorio de la unidad de disco que se intenta combinar o reemplazar es un destino ya reemplazado.
150 0x0096 El archivo config.sys no especifica información de seguimiento del sistema o la función de seguimiento está cancelada.
151 0x0097 El número del evento de semáforo especificado dosmuxsemwait es incorrecto.
152 0x0098 dosmuxsemwait no se ejecuta; hay demasiados semáforos configurados.
153 0x0099 La lista de espera de dosmuxsem es incorrecta.
154 0x009a El identificador del medio de almacenamiento que ingresó tiene un límite de longitud.
155 0x009b No se pueden crear otros subprocesos de ejecución.
156 0x009c El viaje receptor se negó a aceptar la señal.
157 0x009d La sección ha sido abandonada y no se puede bloquear.
158 0x009e La sección ha sido desbloqueada.
159 0x009f La dirección del identificador del hilo es incorrecta.
160 0x00a0 La cadena de argumento pasada a dosexecpgm es incorrecta.
161 0x00a1 La ruta especificada es incorrecta.
162 La señal 0x00a2 está esperando ser procesada.
164 0x00a4 El sistema no puede crear un hilo de ejecución.
167 0x00a7 No se puede bloquear parte del archivo.
170 0x00aa El recurso solicitado está en uso.
173 0x00ad El requisito de bloqueo para cancelar el rango no es obvio.
174 0x00ae El sistema de archivos no admite el cambio automático del tipo de bloqueo.
180 0x00b4 El sistema encontró un número de sección incorrecto.
182 0x00b6 El sistema operativo no puede ejecutar 1.
183 0x00b7 El archivo ya existe y no se puede crear el mismo archivo.
186 0x00ba El flag transmitido es incorrecto.
187 0x00bb No se puede encontrar el indicador del sistema especificado.
188 0x00bc El sistema operativo no puede ejecutar 1.
189 0x00bd El sistema operativo no puede ejecutar 1.
190 0x00be El sistema operativo no puede ejecutar 1.
191 0x00bf No se puede ejecutar 1 en modo win32.
192 0x00c0 El sistema operativo no puede ejecutar 1.
193 0x00c1 1 no es una aplicación win32 correcta.
194 0x00c2 El sistema operativo no puede ejecutar 1.
195 0x00c3 El sistema operativo no puede ejecutar 1.
196 0x00c4 El sistema operativo no puede ejecutar esta aplicación.
197 0x00c5 El sistema operativo actualmente no puede ejecutar esta aplicación.
198 0x00c6 El sistema operativo no puede ejecutar 1.
199 0x00c7 El sistema operativo no puede ejecutar esta aplicación.
200 0x00c8 La sección de código no puede ser mayor o igual a 64kb.
201 0x00c9 El sistema operativo no puede ejecutar 1.
202 0x00ca El sistema operativo no puede ejecutar 1.
203 0x00cb El sistema no puede encontrar la opción de entorno ingresada. \r
205 0x00cd No hay ningún subprocesador de señales para ningún proceso en el subdirectorio de comandos.
206 0x00ce El nombre o la extensión del archivo es demasiado largo.
207 0x00cf La pila del anillo 2 está en uso.
Respuesta: Cogito, por eso pregunto - Gerente Senior Nivel 6 12-9 01:24
Respuesta modificada: Cogito, por eso pregunto, la respuesta que desea modificar es la siguiente : La regla de puntos está cerrada
Razones comunes por las que la memoria no se puede leer ni escribir
Las personas que usan el sistema operativo Windows a veces encuentran este tipo de mensajes de error: "La memoria 0x00000000 a la que hace referencia el 0X la instrucción no se puede escribir", Luego se cierra la aplicación. Si pide consejo a algunos "expertos", la respuesta que obtiene suele ser indignación y desdén, como "Windows es muy inestable". De hecho, este error no se debe necesariamente a la inestabilidad de Windows. Este artículo analizará brevemente las causas comunes de este error.
1. La aplicación no verificó el error de asignación de memoria.
Cuando el programa necesita un trozo de memoria para guardar datos, necesita llamar a la "función función" proporcionada por el operador. sistema a aplicar. Si la asignación de memoria tiene éxito, 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 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. ocurrió. 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 comprueba este error, pensará que este valor es un puntero utilizable que se le ha asignado según la "inercia del pensamiento" y continuará utilizando 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, puede 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.
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".
¿Alguna vez has experimentado un fallo similar? (El contenido después de 0x puede ser diferente).
Generalmente, este fenómeno ocurre por varias razones. Una es el hardware, es decir, problemas de memoria, y la otra es el software, que tiene muchos problemas.
Hablemos primero del 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 calidad de la memoria es problemática. Incluso si se mezclan dos marcas diferentes de memoria con diferentes capacidades, es fácil que sean incompatibles. Al mismo tiempo, 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 tiene memoria dual y módulos de memoria mixtos de diferentes marcas o compró memoria de segunda mano y se produce este problema, debe verificar si hay algún problema con la memoria o con otro hardware que no sea compatible. . De lo contrario, solucione el problema del software.
Primero hablemos brevemente sobre el principio: hay un lugar en la memoria para almacenar datos llamado búfer. Cuando el programa coloca datos en una de las ubicaciones, se producirá un desbordamiento porque no hay suficiente espacio. Por ejemplo: un balde sólo puede contener un kilogramo de agua. Cuando le pones 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.
Lo analizaré a partir de varios ejemplos a continuación:
Ejemplo 1: Abra el navegador IE o dentro de unos minutos aparecerá la memoria "0x00000000" a la que hace referencia la instrucción "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: repare o actualice el navegador IE y aplique un parche. 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. Esta 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 tanto, se puede mostrar la barra de idioma o cualquier otro método de entrada. se muestra antes de cerrar RealOne como 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: intente reinstalar Hero Super Jieba. Si el problema persiste después de reinstalar, vaya al sitio web oficial para descargar la versión correspondiente del parche e inténtelo. 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", que no se puede "leer" y muestra el error del programa Client.dat?/tdgt; p>
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".
Creo que todos deberían haber visto la situación anterior, y algunos internautas incluso han dicho que no están contentos con este mensaje de error que aparece con frecuencia.