当前位置:首页 » 编程语言 » c语言free

c语言free

发布时间: 2022-01-11 05:37:14

A. c语言free的作用

malloc 和 free 是在系统的栈上分配空间。
malloc是申请,意思就是告诉系统,我要用一块RAM,给我用了别人就不要用了。
free是释放,意思是告诉系统,给我的这块RAM我用完了,不再用了,系统可以把它干别的了。

free之后,系统还没有拿这块RAM干别的事之前,这块RAM的内容可能是不会变的,依然可以读出原来的内容,因为你的指针a还是指向这块RAM。但要注意,这块RAM已经不属于你了,读一下内容无所谓,如果往里面写就很危险了。

B. C语言:关于FREE()函数的用法

定义的指针不占内存,指针只是一个指向内存(可以由malloc开辟)的东西,free释放的是指针所指向已经开辟好的内存空间,用free释放。不然容易造成内存泄漏!

C. C语言在哪些情况下需要free

当内存是用malloc申请的时候
使用后,需要free
其它情况一般不需要free
不过需要注意的是,有些库函数 比如strp, 返回的是malloc的一个空间,用后也需要free

D. c语言中 free的用法~

还可以参考
http://hi..com/nidil/blog/item/e205770986fe24af2fddd4d7.html
=============
释放内存 free 函数
需要包含头文件(和 malloc 一样):

#include



#include

函数声明:

void free(void *block);

即: void free(指针变量);

之所以把形参中的指针声明为 void* ,是因为free必须可以释放任意类型的指针,而任意类型的指针都可以转换为void *。

举例:

int* p = (int *) malloc(4);

*p = 100;

free(p); //释放 p 所指的内存空间

或者:

int* p = (int *) malloc ( sizeof(int) * 100 ); //分配可以放得下100个整数的内存空间。

……

free(p);

free 不管你的指针指向多大的空间,均可以正确地进行释放,这一点释放比 delete/delete [] 要方便。不过,必须注意,如果你在分配指针时,用的是new或new[],那么抱歉,当你在释放内存时,你并不能图方便而使用free来释放。反过来,你用malloc 分配的内存,也不能用delete/delete[] 来释放。一句话,new/delete、new[]/delete[]、malloc/free 三对均需配套使用,不可混用!

int* p = new int[100];

... ...

free(p); //ERROR! p 是由new 所得。

E. C语言 free()函数的使用规则

free(a)和free(b)均可以,但是只能free一次,不能free(a)之后又free(b),那样会出错的。
free(c)也不行,因为c的位置没有保存malloc时的辅助信息(用于free)

第二个问题:
free(a)就是将链表中这一个节点释放了,a->next指向的内存不会释放,但是整个a包括a->next占用的空间都已释放,a->next不能再用了。

F. c语言free的作用

你的程序太简单, free之后没有其它操作,所以那块内存没有被写入其它内容.
free只是标记一下某块内存可用,但并不重写内容.
类似于删除文件, 只是打上标记, 内容还在硬盘上,如果没有被改写,还是可以恢复的.

G. C语言 free();

可以。free 后,数组存放单元没了,但指针还在,可以重新分配单元再用,再free.
不 free 也可以用 realloc 增减存放单元。

H. C语言中free的用法

for循环一结束,局部变量ps的所申请的空间就会释放

I. C语言中free函数的用法

free函数的用法释放ptr指向的存储空间。被释放的空间通常被送入可用存储区池,以后可在调用malloc、realloc以及calloc函数来再分配。

free不管指针指向多大的空间,均可以正确地进行释放,这一点释放比delete/delete []要方便。如在分配指针时,用的是new或new[]。

在释放内存时,并不能图方便而使用free来释放。反过来,用malloc分配的内存,也不能用delete/delete[]来释放。

举例:

int* p = (int *) malloc(4);

*p = 100;

free(p); //释放p所指的内存空间

或者:

int* p = (int *) malloc ( sizeof(int) * 100 ); //分配可以放得下100个整数的内存空间。

……

free(p);

(9)c语言free扩展阅读

1、free是和malloc、realloc或者calloc函数成对出现的,来保证动态分配的空间及时释放。

2、一块动态申请的内存用free释放一次就够。

J. C语言的free()函数

double* p;
p=calloc(n*sizeof(double));
free(p);
谁告诉你参数是void类型啊,在c语言中void指针可以转换成指向任何类型的指针
你可以把calloc后返回的p指针理解成指向这一段内存,也可以理解成指向第一个元素
调用free()时p指针指向的是这一段内存,当然就可以释放了

热点内容
单片机android 发布:2024-09-20 09:07:24 浏览:765
如何提高三星a7安卓版本 发布:2024-09-20 08:42:35 浏览:664
如何更换服务器网站 发布:2024-09-20 08:42:34 浏览:311
子弹算法 发布:2024-09-20 08:41:55 浏览:289
手机版网易我的世界服务器推荐 发布:2024-09-20 08:41:52 浏览:817
安卓x7怎么边打游戏边看视频 发布:2024-09-20 08:41:52 浏览:162
sql数据库安全 发布:2024-09-20 08:31:32 浏览:94
苹果连接id服务器出错是怎么回事 发布:2024-09-20 08:01:07 浏览:507
编程键是什么 发布:2024-09-20 07:52:47 浏览:658
学考密码重置要求的证件是什么 发布:2024-09-20 07:19:46 浏览:481