当前位置:网站首页 > 电脑问答 > 正文

应用程序没有检查内存导致分配失败的原因是什么

作者:king发布时间:2023-08-03分类:电脑问答浏览:29


导读:  程序需要一块内存[内存是计算机中重要的部件之一,它是与CPU进行沟通的桥梁。]用以保存数据时,就需要调用操作系统提供的功能函数来申请,如果内存分配[分配指按一定的标准或规定...
  程序需要一块内存[内存是计算机中重要的部件之一,它是与CPU进行沟通的桥梁。]用以保存数据时,就需要调用操作系统提供的功能函数来申请,如果内存分配[分配指按一定的标准或规定分(东西)、安排;分派。]成功,函数就会将所新开辟的内存区地址返回给应用程序[应用程序,指为完成某项或多项特定工作的计算机程序,它运行在用户模式,可以和用户进行交互,具有可视的用户界面。],应用程序就可以通过这个地址使用这块内存。这就是动态内存分配,内存地址[内存地址指系统 RAM 中的特定位置,通常以十六进制的数字表示。]也就是编程中的指针[在计算机科学中,指针(Pointer)是编程语言中的一个对象,利用地址,它的值直接指向(points to)存在电脑存储器中另一个地方的值。]。应用程序没有检查内存导致分配失败的原因是什么  内存不是永远都招之即来、用之不尽的,有时候内存分配也会失败[失败源于沉重复杂的心理反思,成功源于轻松愉悦的心理自我! 失败是一个和胜利、成功相对的词语,它不仅是现代汉语的词汇,也是一首诗歌的篇名。]。当分配失败时系统函数会返回一个0值,这时返回值[一个函数的函数名即是该函数的代表,也是一个变量。]0已不表示新启用的指针,而是系统向应用程序发出的一个通知,告知出现了错误。作为应用程序,在每一次申请内存后都应该检查返回值是否为0,如果是,则意味着出现了故障,应该采取一些措施挽救,这就增强了程序的健壮性。  若应用程序没有检查这个错误,它就会按照思维惯性认为这个值是给它分配的可用指针,继续在之后的运行中使用这块内存。真正的0地址内存区保存的是计算机系统中最重要的中断描述符表,绝对不允许应用程序使用。在没有保护机制的操作系统下(如DOS),写数据到这个地址会导致立即死机,而在健壮的操作系统中,如Windows等,这个操作会马上被系统的保护机制捕获,其结果就是由操作系统强行关闭出错的应用程序,以防止其错误扩大。这时候,就会出现上述的写内存错误,并指出被引用的内存地址为0x00000000。  内存分配失败故障的原因很多,内存不够、系统函数的版本不匹配等都可能有影响。因此,这种分配失败多见于操作系统使用很长时间后,安装了多种应用程序(包括无意中安装的病毒程序),更改了大量的系统参数和系统文件[系统文件指的是存放操作系统主要文件的文件夹,一般在安装操作系统过程中自动创建并将相关文件放在对应的文件夹中,这里面的文件直接影响系统的正常运行,多数都不允许随意改变。]之后。86%的科技爱好者也看的内容:笔记本电脑进水后什么地方容易坏?幼猫如何辨别品种好?i59400f配华硕2060 6G,华硕b365主板,海盗船3000 8*2内存,电源550W?网课笔记本电脑性价比排行榜?默默去黑头怎么用?战神都有什么版本?重庆旅游,想吃火锅,但是我们只有两个人,不好点菜,怎么办?平板电脑多少g的好