c语言中使用malloc函数开辟了空间,但是我不使用free函数释放会怎么样,开辟的空间会自动释放掉吗?

如题所述

不会释放的。这样会造成内存泄露。
具体危害详见http://baike.baidu.com/view/1068433.htm
温馨提示:内容为网友见解,仅供参考
无其他回答

C语言编程时使用MALLOC后未用FREE函数释放内存空间怎么办
1 malloc后的内存除了等到free来释放,还可以等到程序运行结束时自动释放 2 程序运行过程中,如果一直malloc内存而不释放会导致这部分内存不能被再次使用,即内存泄露。这样以来,应用程序会逐渐用光所有可用的内存,最终导致应用程序因内存不足而崩溃停止。3 所以一个好的习惯是,malloc后一定要记得free之。

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

如果用C语言编写一个程序用了malloc函数但是没用free函数,那整个程序结 ...
malloc函数是在程序中动态向系统申请内存单元,不用这些单元时,可以用free函数动态释放,这样程序所占用的内存就会减少,假如没用free函数释放,那程序所占用的内存不会减少,但到程序结束时,它所占用的内存单元(包括静态变量和动态变量等)都会全部被系统收会。

C语言 malloc()函数 分配内存空间尺寸的问题
malloc是给指针变量分配内存空间的函数命令 正确使用:分配的空间要能保证容下你想存储的数据,不要和机器逗着玩(分配0空间,或少于自己实际需要的空间),如你上面的操作,表面上你程序运行没有问题,可实际上你占用了别人的地盘,只是当前你很幸运没有使程序出现问题,但不保证一定不出问题!!不再使...

函数中用malloc开辟空间的问题(C语言)
按你说的,没有把指针返回也没有释放,那么函数返回时开辟的空间还在,但你已无法引用。用malloc是在堆中分配的空间,用完需用自已显示释放.采用如int a=0的方式会在栈中分配空间,函数返回时栈指针回移,此空间仍能被其它函数使用(相当于自动释放)...

内存泄漏检测组件的分析与实现(linux c)-mtrace工具使用
内存泄漏的产生原因主要在于在堆上使用了malloc、realloc、calloc等函数分配了内存空间,但未使用free函数释放对应的空间。这样会导致一段时间后,由于只存在内存分配操作而未释放操作,堆内存资源消耗过度,无法再分配合适的内存,最终可能导致程序崩溃。预防内存泄漏的最佳策略是通过实现内存泄漏检测组件。该组件...

malloc和free不在同一个函数会怎么样
造成内存泄露。在C语言编程中规定malloc和free不在同一个函数会造成内存泄露,就是电脑系统的文件泄露。语言是一门通用计算机编程语言,广泛应用于底层开发。

fc块不调用后,里面的数据会不会清
在程序中使用free释放,否则该段内存不会被释放掉就是不会被清除,C语言不会释放。所谓动态内存,是由malloc系列函数进行申请的内存,除非在程序中使用free释放,否则该段内存不会被释放掉。标准库中malloc函数的实现原理。C语言是一门面向过程的、抽象化的通用程序设计语言,广泛应用于底层开发。C语言能...

用C语言分配开辟内存问题
下一个:new和malloc()分配的空间都是在堆区,堆你就可以随意申请了,系统会在系统空闲的链表中找出你要申请空间的大小,标志为已经使用了,然后就会给你用 在申请空间后,注意检测一下申请空间返会值,为NULL就是系统给你分配空间失败了,用完了之后,你需要delete或free()掉你申请的,然后系统...

C语言,用malloc动态开辟过的空间,还能再重新改变它的大小吗?
可以 但是,这样存在两个问题 1:原来的分配的空间没有释放,存在内存泄露的危险 2:如果原来分配空间后,使用了相关内存,像赋值等,重新分配后,原来的值都不会存在了。另外p1 = (int *) malloc ( sizeof(int) * (num));不是 sizeof(int *)....

相似回答