如果是程序出错,请check程序的每一行,包括地址的有效性和逻辑运算;如果是OB块的话,请添加所需要的OB块并下载;OB121是程纯举序错误,请检查程序
OB121只是使发生读取错误时使CPU不停机,消除错误的办法是找到相关的程序并修改正确。
通过逐个下载功能(FC),最终找到程咐裤御序编写错误的地方,改正之后问衡岩题解决.
模块地址是否修改了。
fscanf和在scanf没多大分别楼主应该清楚fscanf出罩此错肯定只能槐闷雀在文件上
因为是%d输入 所以文铅早件里头有其他乱七八糟的东西肯定会有问题
建议用fread不容易出错
速度、求解Windows系统出现内存错误使用Windows *** 作系统的人有时会遇到这样的错误信息:“0X????????指令引用的0x00000000内存,该内存不能written”,然后应用程序被关闭。如果去请教一些“高手”,得到的回答往往是“Windows就是这样不稳定”之类的义愤和不屑。其实,这个错误并不一定是Windows不稳定造成的。本文就来简单分析这种错误的常见原因。一、应用程序没有检查内存分配失败程序需要一块内存用以保存数据时,就需要调用 *** 作系统提供的“功能函数”来申请,如果内存分配成功,函数就会将所新开辟的内存区地址返回给应用程序,应用程序就可以通过这个地址使用这块内存。这就是“动态内存分配”,内存地址也就是编程中的“指针”。内存不是永远都招之即来、用之不尽的,有时候内存分配也会失败。当分配失败时系统函数会返回一个0值,这时卖判返回值“0”已不表示新启用的指针,而是系统向应用程序发出的一个通知,告知出现了错误。作为应用程序,在每一次申请内存后都应该检查返回值是否为0,如果是,则意味着出现了故障,应该采取一些措施挽救,这哗首就增强了程序的“健壮性”。若应用程序没有检查这个错误,它就会按照“思维惯性”认为这个值是给它分配的可用指针,继续在之后的运行中使用这块内存。真正的0地址内存区保存的是计算机系统中最重要的“中断描述符表”,绝对不允许应用程序使用。在没有保护机制的 *** 作系统下(如DOS),写数据到这个地址会导致立即死机,而在健壮的 *** 作系统中,如Windows等,这个 *** 作会马上被系统的保护机制捕获,其结果就是由 *** 作系统强行关闭出错的应用程序,以防止其错误扩大。这时候,就会出现上述的“写内存”错误,并指出被引用的内存地址为“0x00000000”。内存分配失败故障的原因很多,内存不够、系统函数的版本不匹配等都可能有影响。因此,这种分配失败多见于 *** 作系统使用很长时间后,安装了多种应用程序(包括无意中“安装”的病毒程序),更改了大量的系统参数和系统文件之后。二、应用程序由于自身BUG引用了不正常的中芦改内存指针在使用动态分配的应用程序中,有时会有这样的情况出现:程序试图读写一块“应该可用”的内存,但不知为什么,这个预料中可用的指针已经失效了。有可能是“忘记了”向 *** 作系统要求分配,也可能是程序自己在某个时候已经注销了这块内存而“没有留意”等等。注销了的内存被系统回收,其访问权已经不属于该应用程序,因此读写 *** 作也同样会触发系统的保护机制,企图“违法”的程序唯一的下场就是被 *** 作终止运行,回收全部资源。计算机世界的法律还是要比人类有效和严厉得多啊!像这样的情况都属于程序自身的BUG,你往往可在特定的 *** 作顺序下重现错误。无效指针不一定总是0,因此错误提示中的内存地址也不一定为“0x00000000”,而是其他随机数字。如果系统经常有所提到的错误提示,下面的建议可能会有帮助:1.查看系统中是否有木马或病毒。这类程序为了控制系统往往不负责任地修改系统,从而导致 *** 作系统异常。平常应加强信息安全意识,对来源不明的可执行程序绝不好奇。2.更新 *** 作系统,让 *** 作系统的安装程序重新拷贝正确版本的系统文件、修正系统参数。有时候 *** 作系统本身也会有BUG,要注意安装官方发行的升级程序。3.试用新版本的应用程序偶尔出现,是程序冲突,与偶尔蓝屏差不多,没什么关系的。经常出现就危险了,后果很严重,往往是废了半天劲,还得重装系统!该内存不能readwritten常见原因及解决方法1内存条坏了更换内存条2双内存不兼容使用同品牌的内存或只要一条内存3内存质量问题更换内存条4散热问题加强机箱内部的散热5内存和主板没插好或其他硬件不兼容重插内存或换个插槽6硬件有问题更换硬盘7驱动问题重装驱动,如果是新系统,应先安装主板驱动8软件损坏重装软件9软件有BUG打补丁或更新到最新版本10软件和系统不兼容给软件打上补丁或是试试系统的兼容模式11软件和软件之间有冲突如果最近安装了什么新软件,卸载了试试12软件要使用其他相关的软件有问题重装相关软件,比如播放某一格式的文件时出错,可能是这个文件的解码器有问题13病毒问题杀毒14杀毒软件与系统或软件相冲突由于杀毒软件是进入底层监控系统的,可能与一些软件相冲突,卸载试试15系统本身有问题有时候 *** 作系统本身也会有BUG,要注意安装官方发行的更新程序,象SP的补丁,最好打上.如果还不行,重装系统,或更换其他版本的系统。〔又一说〕在控制面板的添加/删除程序中看看你是否安装了微软NET.Framework,如果已经安装了,可以考虑卸载它,当然如果你以后在其它程序需要NET.Framework时候,可以再重新安装。另外,如果你用的是ATI显卡并且你用的是SP2的补丁(一些ATI的显卡驱动需要在NET.Framework正常工作的环境下)。这种情况你可以找一款不需要NET.Framework支持的ATI显卡驱动。如果以上两种方法并不能完全解决问题,你试着用一下“IE修复”软件,并可以查查是否有病毒之类的。〔微软NET.Framework升级到1.1版应该没问题了〕〔还有一说〕方法一:微软新闻组的朋友指点:开始--运行:regsvr32jscript.dll开始--运行:regsvr32vbscript.dll不过没解决---但提供了路子-----一次运行注册所有dll搜索查找到方法如下:运行输入cmd回车在命令提示符下输入for%1in(%windir%\system32\*.dll)doregsvr32.exe/s%1这个命令老兄你慢慢输输入正确的话会看到飞快地滚屏否则……否则失败就是没这效果。回车后慢慢等(需要点时间1-2分钟)都运行完再打开看方法二:这是个典型问题~~~~~引起这个问题的原因很多。一般来讲就是给系统打上补丁和更换内存、给内存换个插槽这3种方法来解决。[系统补丁只要到MicrosoftUpdate网站在线更新就可以了](偶见)造成这种问题的原因很多,不能单纯的下结论,尽量做到以下几点可能对你有帮助:1。确保使用的是未修改过的软件(非汉化、破解版)2。使用改软件时尽量不要运行其他软件。(这是个临时文件,可能某些软件也在使用临时文件夹,所以产生干扰)3。把那些什么桌面工具,内存整理工具通通关掉(你至少有2个类似的工具在运行)处理方法:运行regedit进入注册表,在HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellExecuteHooks下,应该只有一个正常的键值",将其他的删除。〔我个人的最后解决和看法〕我今天尝试了多种法,最后我发现问题出在微软的NET.Framework上面。我升级了这个软件,并打齐了补丁,短暂平安后,有出现“内存不能为read”的情况。后来我受上面文章的启发,卸载了微软的NET.Framework1.0和1.1,世界太平了。另外:如果是打开“我的电脑”、“我的文档”等的时候出现上述情况,还有一种可能,就是你的右键菜单太臃肿了,此时只要清理右键菜单问题就解决了。参考:较为全面的参考:系统提示“内存不足”的九大原因及解决方法一、剪贴板占用了太多的内存实际上,剪贴板是内存中的一块临时区域,当你在程序中使用了“复制”或“剪切”命令后,Windows将把复制或剪切的内容及其格式等信息暂时存储在剪贴板上,以供“粘贴”使用。如果当前剪贴板中存放的是一幅图画,则剪贴板就占用了不少的内存。这时,请按下述步骤清除剪贴板中的内容,释放其占用的内存资源:1.单击“开始”,指向“程序”或“所有程序”,指向“附件”,指向“系统工具”,然后单击“剪贴板查看程序”,打开“剪贴板查看程序”窗口。2.在“编辑”菜单上,单击“删除”命令。3.关闭“剪贴板查看程序”窗口。为了与MicrosoftOffice程序提供的多重剪贴板相区分,上述所说的剪贴板,常被我们称为系统剪贴板。如果你正在使用MicrosOftice程序,而且使用了其多重剪贴板功能,那么你应清空“Office剪贴板”上的项目,方法是:在“Office剪贴板”任务窗格(OfficeXP)或工具栏(Office2000)上,单击“全部清空”或“清空‘剪贴板’”。当清空“Office剪贴板”时,系统剪贴板也将同时被清空二、打开的程序太多如果同时打开的文档过多或者运行的程序过多,就没有足够的内存运行其他程序。这时,对于多文档界面(MDl)程序,如Word、Excel等,请关闭当前文档外的所有文档,并退出当前未使用的程序,然后或许你就能够继续执行因“内存不足”而被中断的任务。三、重新启动计算机如果只退出程序,并不重新启动计算机,程序可能无法将内存资源归还给系统。请重新启动计算机以释放系统资源,然后再次运行程序或执行被中断的任务。四、自动运行的程序太多如果在启动Windows时自动运行的程序太多,那么,即使重新启动计算机,也没足够的内存用来运行其它程序。(一)确定设置为自动运行的程序是否太多1.单击“开始”,然后单击“运行”。2.在“打开”框中,键入“Msconfig”,单击“确定”按钮,打开“系统配置实用程序”窗口。3.单击“常规”选项卡,选中“选择性启动”复选钮,清除“处理Win.ini文件”复选框和“加载启动组项目”复选框。4.单击“确定”按钮,当系统提示重新启动计算机时,请单击“是”按钮。重新启动电脑后,如果内存不足的问题已经解决,你就可以将计算机配置为启动时不打开任何程序。(二)配置计算机不自动打开任何程序1.恢复在Msconfig中所作的更改,方法是:在“系统配置实用程序”窗口,单击“常规”选项卡,选择“正常启动”,单击“确定”按钮,然后重新启动计算机。2.删除“启动”文件夹中的所有快捷方式①单击“开始”,指向“设置”,然后单击“任务栏和开始菜单”,系统d出“任务栏属性”对话框。②单击“开始菜单程序”选项卡,单击“删除”按钮。③单击“启动”文件夹旁的加号,以显示设置为自动运行的程序列表。如果“启动”文件夹旁没有加号“+”,则表明没有设置为自动运行的程序,请单击“关闭”按钮以终止此过程。④单击“启动”文件夹中的每个快捷方式,然后单击“删除”按钮。此 *** 作将从“开始”菜单中删除快捷方式,但并不从硬盘中删除相应的程序。对于“启动”文件夹中的每个快捷方式,重复该步骤。⑤单击“关闭”按钮。⑥单击“确定”按钮。3.禁用从Win.ini文件加载的所有程序①如上所述打开“系统配置实用程序”窗口。②单击“Win.ini”选项卡,双击“[windows]”,然后清除“Load=”和“Run=”复选框。③单击“确定”按钮,当系统提示重新启动计算机时,请单击“是”按钮。四、自动运行的程序太多如果在启动Windows时自动运行的程序太多,那么,即使重新启动计算机,也没足够的内存用来运行其它程序。(一)确定设置为自动运行的程序是否太多1.单击“开始”,然后单击“运行”。2.在“打开”框中,键入“Msconfig”,单击“确定”按钮,打开“系统配置实用程序”窗口。3.单击“常规”选项卡,选中“选择性启动”复选钮,清除“处理Win.ini文件”复选框和“加载启动组项目”复选框。4.单击“确定”按钮,当系统提示重新启动计算机时,请单击“是”按钮。重新启动电脑后,如果内存不足的问题已经解决,你就可以将计算机配置为启动时不打开任何程序。使用Windows出现蓝色屏幕是经常的事,而且每每因为不清楚错误的来源而频繁重新安装系统,劳神费时。下列收集了一些windows死机密码,供大家参考。数值叙述00x0000作业完成。10x0001不正确的函数。20x0002系统找不到指定的档案。30x0003系统找不到指定的路径。40x0004系统无法开启档案。50x0005拒绝存取。60x0006无效的代码。70x0007储存体控制区块已毁。80x0008储存体空间不足,无法处理这个指令。90x0009储存体控制区块位址无效。100x000a环境不正确。110x000b尝试载入一个格式错误的程式。120x000c存取码错误。130x000d资料错误。140x000e储存体空间不够,无法完成这项作业。150x000f系统找不到指定的磁碟机。160x0010无法移除目录。170x0011系统无法将档案移到其他的磁碟机。180x0012没有任何档案。190x0013储存媒体为防写状态。200x0014系统找不到指定的装置。210x0015装置尚未就绪。220x0016装置无法识别指令。230x0017资料错误(cyclicredundancycheck)240x0018程式发出一个长度错误的指令。250x0019磁碟机在磁碟找不到持定的磁区或磁轨。260x001a指定的磁碟或磁片无法存取。270x001b磁碟机找不到要求的磁区。280x001c印表机没有纸。290x001d系统无法将资料写入指定的磁碟机。300x001e系统无法读取指定的装置。310x001f连接到系统的某个装置没有作用。320x0020theprocesscannotaccessthefilebecauseitisbeingusedbyanotherprocess.330x0021档案的一部份被锁定,现在无法存取。340x0022磁碟机的磁片不正确。请将%2(volumeserialnumber:%3)插入磁碟机%1。360x0024开启的分享档案数量太多。380x0026到达档案结尾。390x0027磁碟已满。500x0032不支援这种网路要求。510x0033远端电脑无法使用。520x0034网路名称重复。530x0035网路路径找不到。540x0036网路忙碌中。550x0037thespecifiednetworkresourceordeviceisnolongeravailable.560x0038thenetworkbioscommandlimithasbeenreached.570x0039网路配接卡发生问题。580x003a指定的伺服器无法执行要求的作业。590x003b网路发生意外错误。600x003c远端配接卡不相容。610x003d印表机伫列已满。620x003e伺服器的空间无法储存等候列印的档案。630x003f等候列印的档案已经删除。640x0040指定的网路名称无法使用。650x0041拒绝存取网路。660x0042网路资源类型错误。670x0043网路名称找不到。680x0044超过区域电脑网路配接卡的名称限制。690x0045超过网路bios作业阶段的限制。700x0046远端伺服器已经暂停或者正在起始中。710x0047由于连线数目已达上限,此时无法再连线到这台远端电脑。720x0048指定的印表机或磁碟装置已经暂停作用。800x0050档案已经存在。820x0052无法建立目录或档案。830x0053int24失败840x0054处理这项要求的储存体无法使用。850x0055近端装置名称已经在使用中。860x0056指定的网路密码错误。870x0057参数错误。880x0058网路发生资料写入错误。890x0059此时系统无法执行其他行程。1000x0064无法建立其他的系统semaphore。1010x0065属于其他行程专用的semaphore。1020x0066semaphore已经设定,而且无法关闭。1030x0067无法指定semaphore。1040x0068在岔断时间无法要求专用的semaphore。1050x0069此semaphore先前的拥有权已经结束。1060x006a请将磁片插入%1。1070x006b因为代用的磁片尚未插入,所以程式已经停止。1080x006c磁碟正在使用中或被锁定。1090x006dpipe已经中止。1100x006e系统无法开启指定的装置或档案。1110x006f档名太长。1120x0070磁碟空间不足。1130x0071没有可用的内部档案识别字。1140x0072目标内部档案识别字不正确。1170x0075由应用程式所执行的ioctl呼叫不正确。1180x0076写入验证参数值不正确。1190x0077系统不支援所要求的指令。1200x0078此项功能仅在win32模式有效。1210x0079semaphore超过逾时期间。1220x007a传到系统呼叫的资料区域太小。1230x007b档名、目录名称或储存体标签语法错误。1240x007c系统呼叫层次不正确。1250x007d磁碟没有设定标签。1260x007e找不到指定的模组。1270x007f找不到指定的程序。1280x0080没有子行程可供等待。1290x0081%1这个应用程式无法在win32模式下执行。1300x0082attempttouseafilehandletoanopendiskpartitionforanoperationotherthanrawdiski/o.1310x0083尝试将档案指标移至档案开头之前。1320x0084无法在指定的装置或档案,设定档案指标。1330x0085join或subst指令无法用于内含事先结合过的磁碟机。1340x0086尝试在已经结合的磁碟机,使用join或subst指令。1350x0087尝试在已经替换的磁碟机,使用join或subst指令。1360x0088系统尝试删除未连结过的磁碟机的连结关系。1370x0089系统尝试删除未替换过的磁碟机的替换关系。1380x008a系统尝试将磁碟机结合到已经结合过之磁碟机的目录。1390x008b系统尝试将磁碟机替换成已经替换过之磁碟机的目录。1400x008c系统尝试将磁碟机替换成已经替换过之磁碟机的目录。1410x008d系统尝试将磁碟机subst成已结合的磁碟机目录。1420x008e系统此刻无法执行join或subst。1430x008f系统无法将磁碟机结合或替换同一磁碟机下目录。1440x0090这个目录不是根目录的子目录。1450x0091目录仍有资料。1460x0092指定的路径已经被替换过。1470x0093资源不足,无法处理这项指令。1480x0094指定的路径这时候无法使用。1490x0095尝试要结合或替换的磁碟机目录,是已经替换过的的目标。1500x0096config.sys档未指定系统追踪资讯,或是追踪功能被取消。1510x0097指定的semaphore事件dosmuxsemwait数目不正确。1520x0098dosmuxsemwait没有执行;设定太多的semaphore。1530x0099dosmuxsemwait清单不正确。1540x009a您所输入的储存媒体标元长度限制。1550x009b无法建立其他的执行绪。1560x009c接收行程拒绝接受信号。1570x009d区段已经被舍弃,无法被锁定。1580x009e区段已经解除锁定。1590x009f执行绪识别码的位址不正确。1600x00a0传到dosexecpgm的引数字串不正确。1610x00a1指定的路径不正确。1620x00a2信号等候处理。1640x00a4系统无法建立执行绪。1670x00a7无法锁定档案的部份范围。1700x00aa所要求的资源正在使用中。1730x00ad取消范围的锁定要求不明显。1740x00ae档案系统不支援自动变更锁定类型。1800x00b4系统发现不正确的区段号码。1820x00b6作业系统无法执行%1。1830x00b7档案已存在,无法建立同一档案。1860x00ba传送的旗号错误。1870x00bb指定的系统旗号找不到。1880x00bc作业系统无法执行%1。1890x00bd作业系统无法执行%1。1900x00be作业系统无法执行%1。1910x00bf无法在win32模式下执行%1。1920x00c0作业系统无法执行%1。1930x00c1%1不是正确的win32应用程式。1940x00c2作业系统无法执行%1。1950x00c3作业系统无法执行%1。1960x00c4作业系统无法执行这个应用程式。1970x00c5作业系统目前无法执行这个应用程式。1980x00c6作业系统无法执行%1。1990x00c7作业系统无法执行这个应用程式。2000x00c8程式码的区段不可以大于或等于64kb。2010x00c9作业系统无法执行%1。2020x00ca作业系统无法执行%1。2030x00cb系统找不到输入的环境选项。\r2050x00cd在指令子目录下,没有任何行程有信号副处理程式。2060x00ce档案名称或副档名太长。2070x00cfring2堆叠使用中。欢迎分享,转载请注明来源:内存溢出
评论列表(0条)