看C语言的书中说“释放存储空间”,是什么意思?什么叫做释放,为什么叫释放

如题所述

就是通知操作系统,先前申请的指定部分的变量所使用的空间不再使用,使用权交还给操作系统,以便分配给其它程序使用。dispose(p)就是将变量p所代表的空间还给操作系统的意思(原本是向操作系统申请由本程序使用的,操作系统不会再分给别的程序使用)。
温馨提示:内容为网友见解,仅供参考
第1个回答  2013-10-07
一块内存空间,当你在程序中申请使用了这块空间的时候,这块空间的使用权就是你的,当你不需要了,就应该释放,将这块空间还给系统以供其他程序使用,不然会造成内存泄漏
第2个回答  2013-10-08
char ch="A",这叫初始化变量,如果不用可以释放存储空间,目的是内存有限,如果没有可用内存时,可能导致程序异常!望采纳!多看看编程的书籍!
第3个回答  2013-10-07
这个应该是malloc中的概念吧。
你定义一个指针,如果要让指针指向一块内存空间,就得给他分配空间。
使用完之后最好向系统说明已经用完了,这个过程就叫释放。
小程序可能无所谓,如果占用内存大的程序,只申请内存空间而不释放的话,就会造成内存不够用了。

...释放存储空间”,是什么意思?什么叫做释放,为什么叫释放
就是通知操作系统,先前申请的指定部分的变量所使用的空间不再使用,使用权交还给操作系统,以便分配给其它程序使用。dispose(p)就是将变量p所代表的空间还给操作系统的意思(原本是向操作系统申请由本程序使用的,操作系统不会再分给别的程序使用)。

C语言:什么情况下需要释放内存
C管理内存大致可以理解为两种,一个是分配在栈上的,另一个是分配在堆上的。临时变量,动态变量,分配在栈上,运行完,直接弹出栈,就没了。分配在堆上的内存,释放的时候,基本上可以理解为,指针不指这里了。也就失去了对这块内存的控制。其实所谓的释放。字面意思容易让人理解错。有些机器有些操作...

在C语言进行编程中,为什么要释放旧内存?
即是说C\/C++ 都需要主动释放动态申请的内存。试着解释下为什么要主动释放动态申请的内存:1.动态申请的内存,存储在堆中,编译器不会自己回收,回收的意义:通俗讲就是告诉编译器,这片内存可以使用。如果不被回收,这片内存就永远都不会被重新利用。也就是内存泄露。例如 int *a=(int *)malloc (s...

释放内存是什么意思?
释放内存指的是在计算机系统中将已被分配但当前未被使用的内存空间返回给操作系统或内存管理系统,使其能够被其他程序或进程使用。当程序运行时,会向操作系统请求分配一定的内存空间来存储数据和执行代码。然而,在程序运行过程中,有些内存空间可能会被分配但未被使用,或者已经完成任务后不再需要。为了提...

c语言为什么要关心和内存申请和释放,感觉不管也没什么问题啊?
1. C 语言的手动内存管理 C 语言中的内存管理依赖于程序员通过函数如 malloc()、calloc()、realloc() 来动态分配内存,并使用 free() 来释放内存。这种手动管理内存的机制虽然提供了灵活性,但如果没有正确地管理内存,就可能导致以下几个问题:2. 内存泄漏(Memory Leak)什么是内存泄漏:内存泄漏是...

C语言free释放内存后为什么指针里的值不变?竟然还可以输出
释放是说把“原来指针指向的内存空间交还给系统”,由系统重新支配——因为用malloc分配后那部分内存就由你的代码支配而系统支配不了了。那么free后,尽管交还了系统,但还在系统没有重新使用这块内存时,它里面的数据没有改变,你当然可以读出来——因为内存中的数据无论有效或无效,都要等到下一次写入...

C语言里 free释放的是什么,释放的是不是对内存空间的使用权,释放后内存...
理解正确,释放后的值当然还在那个位置,只是你再没有指针去指向它,也就无法操作它了。很多编译器中,如果对于刚刚free的内存,重新再访问,会发现里面的值没有发生变化。

C语言动态内存释放这个free(p);到底是释放的是第一个单元的空间还是释放...
free()释放的是指针指向的内存,不单单是首地址单元,包括所有动态分配的 另外注意释放的是内存不是指针 指针是一个变量,只有程序结束时才被销毁 释放了内存空间后,原来指向这块空间的指针还存在,只不过现在指针指向的内容是未定义的,是垃圾

c语言关于变量储存和释放的问题?
第一个理解没问题,第二个你把a的地址赋给了b,也就是有两个指针都指向这个地址,释放是地址,这个地址能被其他变量使用,下面的程序没有变量使用这个地址,所以里面的内容没有消失,所以通过b还是能取出b所指向地址里的内容

c语言中,malloc和free是什么意思?
属于内存管理的两个函数,malloc是申请内存的,free是释放内存的。1、malloc一般用法:int *t=NULL;t=(int *)malloc(sizeof(int));也可以在sizeof前面加上一个'n*'这就成了一个动态分配数组的方法。2、free一般用法:int *t=NULL;t=(int *)malloc(sizeof(int));free(t);这样t所指的空间...

相似回答