c语言malloc函数,用了malloc之后没用free函数,把程序关了之后内存还会被占用嘛? 或者重新修改代码行不

如题所述

楼上的不知道不要乱说,这样会误导别人的。
首先,malloc分配的内存是在堆上的,这部分内存是程序自己申请的,必须自己去释放。如果,不释放,那么,在程序运行的期间,他会一直占用。当程序结束的时候,他会被操作系统释放。
温馨提示:内容为网友见解,仅供参考
第1个回答  2013-03-05
程序的所有资源是分配给进程的,操作系统会记录分配给进程的所有资源。
当进程退出时,操作系统就会按照记录收回所有已记录的该进程占用的资源的。
所以,你的问题的回答是,内存不会被占用了。
这个答案是显而易见的,否则一个进程的资源泄露就会影响到整个系统的稳定性了,那么这样的操作系统还能稳定么。
第2个回答  2013-03-05
程序结束了一般会由操作系统收回malloc的内存的。
但是这是一个很不好的习惯,因为在程序运行期间,这些内存会一直被占用,即所谓的“内存泄漏”。
第3个回答  2013-03-05
会占用的。。malloc 申请的内存在堆上。

c语言malloc函数,用了malloc之后没用free函数,把程序关了之后内存还会被...
首先,malloc分配的内存是在堆上的,这部分内存是程序自己申请的,必须自己去释放。如果,不释放,那么,在程序运行的期间,他会一直占用。当程序结束的时候,他会被操作系统释放。

...编写一个程序用了malloc函数但是没用free函数,那整个程序结束后泄漏...
会程序结束后泄漏的内存会被收回的。因为程序结束后,该程序所占用的所有的内存都会被收会。程序所用的内存包括静态变量和动态变量,动态变量可以在程序中用malloc和free动态修改程序所占用的内存空间,静态变量则在它一开始定义到程序结束前都会占用内存空间,直到程序结束时才会被释放。malloc函数是在程序中...

C语言中,malloc函数动态分配内存后,如果不用free去释放,函数结束后空 ...
在程序中使用free释放,否则该段内存不会被释放掉。C语言不会释放。所谓动态内存,是由malloc系列函数进行申请的内存,除非在程序中使用free释放,否则该段内存不会被释放掉。标准库中malloc函数的实现原理。要了解针对malloc的内存存储结构,malloc不像全局变量一样,不是在编译器编译的时候就会分配内存空间...

C语言,用了malloc之后,不用free会怎么样
对你系统没有影响,如果不free的话,只是该程序在运行时一直占有一定量的内存,只要程序不运行了,内存就会自动释放。对电脑内存没有影响。

在c语言中使用了malloc,但没有释放空间。如果关闭程序,内存还会一直...
不会的,malloc申请的空间在程序的堆空间中,程序退出以后程序占用的所有内存都被释放了。但是不用的时候就free是一个好习惯,尤其是你的程序中反复用malloc分配空间时,不及时释放可能导致程序崩溃

在c语言中,用malloc后没用free会造成什么影响呢?
内存会被占用着。但是只要你退出了那个exe程序,所有内存都会释放掉,没关系的。你不放心的话就重启一下电脑,只要电脑没被你配置成自动运行你写的程序,就不可能会去malloc空间。

c语言中用malloc申请的内存,如果不用free释放的话,它会在程序结束后自动...
在堆中分配的内存如果不用free释放,就会在程序运行结束前一直存在于堆中,造成内存泄露。但结束程序后,操作系统会回收该进程的内存空间,该进程存储在物理内存的所有内容消失了,包括以前泄漏的。

...C++ 中的malloc分配一个内存 如果后面没用free去
程序退出就不会占用了。不要使用malloc这样的函数分配内存,而是使用智能指针。auto_ptr<int> p(new int[100]);为p分配100个int大小的数组,当函数结束时会自动释放内存。

程序退出时 malloc 申请的内存会自动释放吗
当然会,所谓内存泄露,指的是在程序运行期间,申请的空间没有得到释放.系统会认为这块空间一直被占用,从而导致可用空间实际上减少了.

c语言中程序结束时,动态内存会释放吗?是由谁释放的?
1 从C语言本身设计来说,不会释放。所谓动态内存,是由malloc系列函数进行申请的内存,除非在程序中使用free释放,否则该段内存不会被释放掉。从这个角度来说,即使进程结束,该段内存也会被占用。这种现象被称为内存泄露。2 大多数操作系统可以智能释放。动态内存由于是进程使用,向操作系统控制方申请的...

相似回答