首页 > 编程知识 正文

read的中文(重装系统显示内存不能为read)

时间:2023-05-06 07:41:06 阅读:96305 作者:4689

电脑是我们工作和娱乐不可缺少的工具。每个人都会生病,电脑也会。尤其是当我们暴力使用它们时,计算机会以各种方式崩溃。今天S姐给大家带来了其中一个,叫“0X?指令引用的0x00000000内存无法写入或读取。

当我们看到这句话并点击确定时,打开的应用程序将自动关闭。有人会说这是系统不稳定造成的,不用担心。真的是这样吗?其实不是这样的!

计算机出现这种情况有两个原因:一是应用程序检查内存分配失败,二是应用程序由于自身BUG引用了异常内存指针。

让我们一个一个来解释,当一个程序需要一块内存来存储数据时,需要调用操作系统提供的“function function”来应用。如果内存分配成功,函数会将新打开的内存区域的地址返回给应用程序,应用程序可以通过这个地址使用这个内存。这就是“动态内存分配”,内存地址也是编程中的“指针”。

因为内存不是取之不尽的,分配的时候有失败的可能。分配失败后,系统函数将返回值0。此时,返回值“0”不再表示新启用的指针,而是系统向应用程序发送的出错通知。作为一个应用程序,应该在每次内存应用后检查返回值是否为0。如果是,说明出了问题,应该采取一些措施来挽救,增强了程序的安全性。

如果应用程序没有检查这个错误,它会认为这个值是根据“思维惯性”分配给它的可用指针,并在后续运行中继续使用这个内存。实0地址存储区保存着计算机系统中最重要的“中断描述符表”,绝对不允许被应用程序使用。

在没有保护机制的操作系统(如DOS)中,将数据写入此地址会导致立即崩溃,而在受保护的操作系统中,此操作会立即被系统的保护机制捕获,结果操作系统会强制关闭错误的应用程序,以防止其错误扩展。这时会出现上述“写内存”错误,指出引用的内存地址为“0x00000000”。

在第二种情况下,在使用动态分配的应用程序中,有时程序试图读写“应该可用”的内存,但不知何故,预期的可用指针失败了。可能是“忘记”向操作系统请求分配,也可能是程序本身在某个时间已经注销了这个内存,“没有注意”等等。

注销的内存由系统回收,其访问权限不再属于应用程序。因此,读写操作也会触发系统的保护机制,因此操作停止运行,所有资源被回收。像这样的情况是程序本身的bug,您经常可以在特定的操作序列中重现错误。无效指针不一定总是0,所以错误提示中的内存地址不一定是“0x00000000”,而是其他随机数。

知道触发条件后,我们的解决方案就变得简单了。

解决方案:

1.首先,我们需要检查系统是否被木马或病毒感染。这种程序可能会修改系统以获得对系统的控制,从而导致操作系统异常。

2.将操作系统更新或恢复到正常版本,修复系统文件并更正参数。当然每个版本的操作系统也有自己的bug,大家可以随时关注官方发布的升级程序。

3.使用官方版本的软件和系统,测试版或应用版可能会有不稳定和bug。

4.重新注册系统中的所有DLL文件,[win] [r]打开“运行”菜单栏并输入[cmd],按[Enter]进入‘c : Windows System32 cmd . exe’窗口。输入:对于(%windir% system32 *)中的% 1。dll)直接在' c : Windows system32 cmd . exe '窗口的命令提示符下执行regsvr32.exe/s% 1。最后,点击[输入]键。

5.如果以上操作仍然不能解决问题,并且重新安装系统中频繁出现内存错误,则需要检查硬件问题并更换内存进行测试。

OK ~以上是内存无法读写错误的解决方案。如果你正遭受这个问题的困扰,那就自己试试吧~当然,操作前请务必备份重要数据!本期就到这里~下次见~!

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。