开发者社区 问答 正文

对内存的释放本质是什么?

对内存的释放是不是清零?在vc、vs的情况下都是c这种的吗?那为什么多次释放同一块内存会报错呢,而且是程序崩溃,想不通,不就是清个零嘛

展开
收起
a123456678 2016-03-09 13:44:29 2230 分享 版权
1 条回答
写回答
取消 提交回答
  • 1、内存是一个由连续地址,引导的存贮器。数据存入内存,需要依据存入的数据大小,开辟一个区域,用于存贮。并且将区域,标识为已存入数据。这样,一是通过标识,可以读取数据,二是不被其它数据覆盖。
    2、当内存需要清零时,操作上不是清零,而是取消这块内存保存数据的标记。这样,这块内在,又可以被使用了。
    3、数据不清零,是因为没有必要。当其它数据存入时,原来数据可以被新的数据覆盖。
    4、重复释放内存,也就是对该块内在,再将取消标识。此时,代码发现此内存已经取消标识,发出报错信息。提醒用户。
    5、在内存的操作上,是一项很危险的操作,是具有造成危害安全的操作,特别是你定义的内存块越界,轻则本程序崩溃,重则造成操作操作系统死机。

    2019-07-17 18:55:58
    赞同 展开评论
问答分类:
C++
问答地址: