指令引用的0x00000004内存,该内存不能为read这是怎么回事
4个回答
展开全部
出现这种情况的主要原因还是在软件上。简单的说是升序越界访问不属于自己的内存造成的。
一个原因是因为软件自身逻辑缺乏严密性,假设有这样一种软件:用于管理100个人的通信录,有些程序会采用静态内存分配的方式,它会在启动时向操作系统申请一块刚好能存放100个人的名单的内存区,此时如果你试图访问第101个的话,如果这个软件缺乏验证机制,就会去访问本来不属于自己的内存区域,由于操作系统的内存保护机制,将会终止这个程序的运行。当然这样简单的程序都能在编程的时候轻而易举的避免的,但有的程序其逻辑关系是非常复杂的,很难做到万无一失。
还有一个原因就是软件的兼容性,主要发生在版本较新的软件调用版本较老的动态连接库或公用控件时。
因为程序调用要向控件传入一些参数。比如这次调用需要传入3个参数,而较老版本的控件只能接受2个参数时,也会发生内存越界访问的情况,导致程序被终止。从而弹出你所看到的那个对话框。
一个原因是因为软件自身逻辑缺乏严密性,假设有这样一种软件:用于管理100个人的通信录,有些程序会采用静态内存分配的方式,它会在启动时向操作系统申请一块刚好能存放100个人的名单的内存区,此时如果你试图访问第101个的话,如果这个软件缺乏验证机制,就会去访问本来不属于自己的内存区域,由于操作系统的内存保护机制,将会终止这个程序的运行。当然这样简单的程序都能在编程的时候轻而易举的避免的,但有的程序其逻辑关系是非常复杂的,很难做到万无一失。
还有一个原因就是软件的兼容性,主要发生在版本较新的软件调用版本较老的动态连接库或公用控件时。
因为程序调用要向控件传入一些参数。比如这次调用需要传入3个参数,而较老版本的控件只能接受2个参数时,也会发生内存越界访问的情况,导致程序被终止。从而弹出你所看到的那个对话框。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
内存坏道了吧 换条 或者重做系统试试
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
如果安装了360或者其他的清理软件,试试看清理下系统
追问
我提示的是这个"0x30091b81"指令引用的“0x00000004”内存,该内存不能为“read”。360我这边都有,有杀了,还是有
追答
请无视我上面的回答
来自:求助得到的回答
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询