Mi computadora sigue produciendo memoria "0x04a23000" a la que hacen referencia las instrucciones "0x303c17c6". Esta memoria no se puede "leer" ni "escribir".
Solución al problema de que la memoria no se puede "leer" ni "escribir":
Cuando algunas personas ejecutan el programa de carreras aparece un mensaje de error de que la memoria no se puede "leer" aparecerá. Espero que el siguiente artículo sea de ayuda para todos.
Las personas que usan el sistema operativo Windows a veces encuentran este tipo de mensajes de error al ejecutar ciertos programas, a veces aparece un mensaje de error de memoria y luego el programa se cerrará automáticamente o se cerrará después de hacer clic. cerca.
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, hay dos aspectos de este fenómeno. Uno es que hay un problema con el hardware, es decir, la memoria. El segundo es el software, que tiene muchos problemas.
1. Causado por la vulnerabilidad de desbordamiento del búfer de Microsoft IE
2. Los conflictos de uso de la memoria o de la dirección de memoria virtual hacen que la ejecución del programa asigne una determinada dirección de memoria para que la use el programa. y libérelo cuando finalice el programa. Deje espacio para que lo utilicen nuevos programas. Win es un sistema multitarea. A veces, una nueva tarea comienza antes de que finalice el programa anterior. Cuánta memoria o memoria virtual se necesita para garantizar que podamos ejecutar el trabajo. tareas al mismo tiempo? Quizás Win tenga este problema. No se hace bien, por lo que este error ocurre con frecuencia. Esta situación generalmente ocurre después de ejecutar software o multimedia a gran escala.
3. con módulos de memoria inferiores En general, la posibilidad de problemas de memoria no es grande, los aspectos principales son: el módulo de memoria está roto, la calidad de la memoria es defectuosa y dos módulos de memoria de diferentes marcas y diferentes capacidades están mezclados, lo cual es. También es más probable que cause incompatibilidad. Al mismo tiempo, también debemos prestar atención a los problemas de disipación de calor, especialmente el 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 ha mezclado módulos de memoria de diferentes marcas o ha comprado memoria de segunda mano y se produce este problema, entonces deberá comprobar si hay un problema con la memoria o si es incompatible con otro hardware.
4. Una vulnerabilidad en el sistema Microsoft WINDOWS. Windows especifica la dirección de memoria 0X00000000 a 0X0000ffff como el rango de direcciones para asignar punteros nulos. Si el programa intenta acceder a esta dirección, se considera un error. Los programas escritos en C/C++ generalmente no realizan una verificación estricta de errores. Cuando se usa malloc para asignar memoria y el espacio de direcciones disponible para la asignación no es suficiente, se devuelve un puntero nulo. Sin embargo, el código no verifica este tipo de error y piensa que la asignación de dirección fue exitosa, por lo que accede a la dirección 0X00000000, por lo que se produce una violación de acceso a la memoria y el proceso finaliza. Al llenar un archivo PIF compuesto de caracteres ASCII, ocurrirá la siguiente situación: un archivo PIF ilegal (lleno con caracteres ASCII \''x\'') debe tener al menos 369 bytes antes de que el sistema lo considere un archivo PIF legal y terminar con Solo cuando se muestre el ícono pif habrá contenido como "Programa, Fuente, Memoria, Pantalla" en las propiedades Y solo cuando el tamaño de un archivo que no sea pif sea de 369 bytes, no se producirá ningún error de programa. Al ver la página "Programa" de las propiedades, incluso si tiene 370 bytes, no funcionará. Al ver la página "Programa" de las propiedades de un archivo pif ilegal de más de 369 bytes, el Explorador cometerá un error. : \''***\'' está referenciada por la instrucción. ***\'' memoria La memoria no se puede \''leer\'', el problema radica en la dirección hexadecimal del archivo pif: 0x00000181[. 0x87]0x00000182[0x01] y 0x00000231[0xC3]0x00000232[0x02] incluso Un archivo pif legal, siempre que se cambie cualquiera de estos cuatro lugares, provocará un error en el programa. 0x00000181 y 0x00000182 se cambian a [0xFF][0xFF], cualquier cambio en otras direcciones no provocará un error.
5. Es posible que el servicio Apache no se instale e inicie correctamente; cambie OracleOraHomeXXHTTPServer en el servicio para detenerlo
6. una parte de Cuando se utiliza la memoria para guardar datos, debe 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 a la aplicación. El programa y el programa de aplicación pueden utilizar 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, a veces, 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 que se le asignó de acuerdo con 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. 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 la asignación de memoria falla. 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 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.
7. 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 escribir una parte de la memoria. "debería estar disponible". Pero por alguna razón, este puntero esperado ya no es válido. 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.