People who use the Windows operating system sometimes encounter the error message: "“0X????????” the instruction refers to the memory of "0x00000000"; the memory cannot be "ld"; read” or “written&rdquo ;", then the application is closed. If you go to ask some "masters", the answer is often "angry is so unstable" and disdain. In fact, this error is not necessarily caused by Windows instability. This article will briefly analyze the general reasons for this error. First, the application does not check the memory allocation failure program needs a piece of memory to store data, you need to use the "function function" provided by the operating system to apply, if the memory allocation is successful, the function will return the newly opened memory area address For the application, the application can use this memory through this address. This is called "dynamic memory allocation", and the memory address is also the "cursor" in programming. Memory is not always coming in, it is inexhaustible, and sometimes memory allocation will fail. When the allocation fails, the system function returns a value of 0. At this time, the return value "0" does not indicate the newly enabled cursor, but a notification sent by the system to the application to inform that an error has occurred. As an application, you should check whether the return value is 0 after applying for memory every time. If it is, it means that there is a failure, and some measures should be taken to save it, which enhances the "robustness" of the program. If the application does not check for this error, it will use the "thinking inertia" to think that this value is the available cursor assigned to it, and continue to use this memory in subsequent executions. The real 0 address memory area stores the most important "interrupt descriptor table" in the computer system, and the application is never allowed to be used. In an operating system without a protection mechanism (such as DOS), writing data to this address will cause an immediate crash. In a robust operating system, such as Windows, this operation will be immediately captured by the system's protection mechanism. The result is The operating system is forcibly closed by the operating system to prevent its error from expanding. At this time, the above "write memory" error will occur, and the referenced memory address is "0x00000000". There are many reasons for memory allocation failure failures, memory shortage, system function version mismatch, etc. may have an impact. Therefore, this allocation failure is more common after the operating system has been used for a long time, after installing a variety of applications (including virus programs that are inadvertently "installed"), after changing a large number of system parameters and system files. Second, the application because of its own BUG reference to the abnormal memory cursor in the use of dynamically allocated applications, sometimes there will be such a situation: the program tries to read and write a "should be available" memory, but I do not know why, this is expected The cursor available in has expired. It may be that "forgot" requests allocation to the operating system, or that the program itself has logged off the memory at some point and "not paying attention" and so on. The unregistered memory is reclaimed by the system, and its access right is no longer in the application. Therefore, the read and write operations also trigger the protection mechanism of the system. The only end of the attempt to "illegal" is to be terminated by the operation and all resources are recovered. The laws of the computer world are still much more effective and stricter than humans! Situations like this are all bugs in the program itself, and you can often reproduce the error in a specific order of operations. The invalid cursor is not always 0, so the memory address in the error prompt is not necessarily "0x00000000", but other random numbers. If the system often mentions the error message, the following suggestions may be explained: 1. Check the system for Trojans or viruses. Such programs often irresponsibly modify the system in order to control the system, resulting in an operating system exception. It is common to strengthen information security awareness and not be curious about executable programs of unknown origin. 2. Update the operating system and let the operating system's installer re-copy the correct version of the system file and correct the system parameters. Sometimes the operating system itself will have a bug, pay attention to the installation of the official release of the upgrade program. 3. Try a new version of the app. Mode: Remove the virtual memory answer: It is affirmative so far, that is, if it does not happen again in the next cold day, it means that this is the main cause of addition: If you use Ghost to restore the OS, it is recommended to delete all the WINDOWS\\PREFETCH directory. *.PF file because of the need to let Windows re-collect the physical address of the program, some application errors "0x7cd64998" instruction reference "0x14c96730" memory. This memory cannot be used for "read" inferences. This is the reason: Win XP's "pre-reading" technology is also used in the application software, the system's first few startups for each application. Analyze, then add a virtual "memory image" that describes the application requirements and store this information in the WINDOWSPREFETCH folder. Once the image is built, the application software is loaded much faster. XP's pre-read data stores information about the last 8 system startups or application software launches. After the introduction: At present, this method is also a unique network (its code has been checked for this problem for a long time), and it is also a common problem. Some programs will happen when the software is closed almost every day before going to bed...read...now does not happen It is.