电脑上网时老弹出这个什么原因
2个回答
展开全部
一、成因
系统提示“该内存不能为read”的成因很多,主要是:内存接触不良;安装论坛制作的“精简版”系统造成系统函数不匹配;安装不兼容软件或者带毒、带插件软件从而更改了系统参数和系统文件。
一般来讲,应用程序启动特别是退出保存数据时,就要调用操作系统提供的“功能函数”进行申请。如果内存分配成功,函数就会将新开辟的内存区地址返回给应用程序,应用程序就可以通过这个地址使用相应内存。这就是“动态内存分配”,内存地址也就是编程中的“指针”。
但是,有时内存分配因为某种原因也会失败。当分配失败时系统函数就会返回一个0值,这时返回值“0”已不表示新启用的指针,而是系统向应用程序发出的一个通知:你的申请出现了错误!若应用程序没有检查到这个错误,就会按照“思维惯性”认为这个值就是给它分配的可用指针,继续在此后的运行中使用它认为的“这块内存”。
其实,真正的0地址内存区保存的是系统中最重要的“中断描述符表”,绝对不允许应用程序使用。因而这个0地址操作会马上被Windows系统的保护机制捕获,其结果就是由操作系统强行关闭出错的应用程序,以防止其错误扩大。这时候,就会出现上述的“写内存”错误,并指出被引用的内存地址为“0x????????”。
二、对策
最基本应当做到:1。安装运行微软原版操作系统。2。定期清理内存“金手指”结合部。3。注意下载安装软件的科学性。4。定期全面、彻底查杀病毒、木马。
——以下“命令”和“批处理”,是遇到异常时的最好补救措施(适用于XP和VISTA,两种措施可二选一):
在命令提示符中输入以下命令后回车:
for %1 in (%windir%\system32\*.dll) do regsvr32.exe /s %1
系统提示“该内存不能为read”的成因很多,主要是:内存接触不良;安装论坛制作的“精简版”系统造成系统函数不匹配;安装不兼容软件或者带毒、带插件软件从而更改了系统参数和系统文件。
一般来讲,应用程序启动特别是退出保存数据时,就要调用操作系统提供的“功能函数”进行申请。如果内存分配成功,函数就会将新开辟的内存区地址返回给应用程序,应用程序就可以通过这个地址使用相应内存。这就是“动态内存分配”,内存地址也就是编程中的“指针”。
但是,有时内存分配因为某种原因也会失败。当分配失败时系统函数就会返回一个0值,这时返回值“0”已不表示新启用的指针,而是系统向应用程序发出的一个通知:你的申请出现了错误!若应用程序没有检查到这个错误,就会按照“思维惯性”认为这个值就是给它分配的可用指针,继续在此后的运行中使用它认为的“这块内存”。
其实,真正的0地址内存区保存的是系统中最重要的“中断描述符表”,绝对不允许应用程序使用。因而这个0地址操作会马上被Windows系统的保护机制捕获,其结果就是由操作系统强行关闭出错的应用程序,以防止其错误扩大。这时候,就会出现上述的“写内存”错误,并指出被引用的内存地址为“0x????????”。
二、对策
最基本应当做到:1。安装运行微软原版操作系统。2。定期清理内存“金手指”结合部。3。注意下载安装软件的科学性。4。定期全面、彻底查杀病毒、木马。
——以下“命令”和“批处理”,是遇到异常时的最好补救措施(适用于XP和VISTA,两种措施可二选一):
在命令提示符中输入以下命令后回车:
for %1 in (%windir%\system32\*.dll) do regsvr32.exe /s %1
参考资料: http://bbs.ylmf.net/forum.php?mod=viewthread&tid=857008
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询