I believe that many users of the Windows operating system sometimes encounter such an error message. How can this problem be solved when such an error message occurs?FolksHow can I determine the cause of the error?
「 "0x ????????" The memory of the instruction reference "0x00000000". The memory cannot be "read" or "written", and then the applicationProgramDisabled.
If you ask some experts, the answer is often "Windows is so unstable" and so on. In fact, this error is not necessarily caused by Windows instability. This article briefly analyzes the general causes of such errors.
1. failed to check memory allocation by Application
When a program needs a piece of memory to store data, it needs to apply using the "function" provided by the operating system. If the memory is allocated successfully, the function will return the newly opened memory zone address to the application, and the application can use this memory address. This is "dynamic memory allocation", and the memory address is also the "cursor" in programming 」. The memory is not always used, and sometimes the memory allocation fails. When the allocation fails, the system function returns a value of 0. The returned value "0" does not indicate a newly enabled cursor. Instead, the system sends a notification to the application notifying you of an error. As an application, check whether the returned value is 0 after each memory application. If yes, it means that a fault has occurred and some measures should be taken to save the problem, this enhances the robustness of the program 」. If the application does not check this error, it considers this value as an available cursor for it according to "thinking inertia" and continues to use this memory in subsequent execution.
The real 0-address memory zone stores the most important "Interrupt Descriptor Table" in computer systems and is definitely not allowed to be used by applications. In an operating system without a protection mechanism (such as DoS), writing data to this address will immediately become a machine, while in a robust operating system, such as Windows, this operation will be immediately captured by the system's protection mechanism. The result is that the operating system forces the application that fails to be closed to prevent the error from expanding. In this case, the above "write memory" error occurs and the referenced memory address is "0x00000000 」. There are many causes of memory allocation failure, such as insufficient memory and mismatched system function versions. Therefore, this allocation failure is often seen after the operating system has been in use for a long time and has installed a variety of applications (including virus programs that inadvertently "Install ), after a large number of system parameters and system files are changed.
2. The application cited abnormal memory cursor due to its own bug
In applications that use dynamic allocation, sometimes the program tries to read and write a piece of "should be available" memory, but somehow, the expected available cursor has expired. It may be that the program "forgot" to request distribution to the operating system, or the program may have logged out the memory at some time and "did not pay attention. The logged-out memory is reclaimed by the system and its access rights do not belong to this application. Therefore, read/write operations also trigger the system's protection mechanism, the only end of a program that attempts to "violate the law" is that it is terminated by the operation,Computer CompaniesReclaim all resources. Laws in the computer world are much more effective and harsh than humans! Such cases all belong to the bugs of the program. You can often reproduce errors in a specific operation order. Invalid cursor may not always be 0, so the memory address in the error prompt is not set to "0x00000000", but other random numbers.
previous resource: how to solve the problem of Windows XP supporting dx10 : reveal the boot menu of Windows XP system