1. 首页 > 科技

关于C语言free函数的问题? c语言free函数头文件

关于C语言free函数的问题?c语言free函数头文件

c 语言中的free 函数 用法

不能。FREE不能依靠单纯的指针去释放。

你去看看BMP文件的结构,看看很多的程序的结构,他们的结构体中都会存有数据的大小,而且因为面对的是数据流,所以大小往往被放在最开头。

同样的,你MALLOC(10) ,实际上一定会大于10,它要在内部去存储开辟内存的大小的数据,依次来决定释放的字节。

看见p - 2 的数值了吗?它就是14:10个字节的MALLOC,4字节是大小数据单元。

FREE就是根据那个数值才知道到底释放多少的。

c语言中 free的用法~

malloc用来动态申请内存空间,而free用来释放malloc申请的空间。如:

struct

{

int a;

int b;

}node;

main()

{

node *lnode;

lnode->a=33;

lnode->b=99;

lnode=(node*)malloc(sizeof(node));

printf("a=%d b=%d",lnode->a,lnode->b);

free(lnode);

return 0;

}

数据结构(C语言版)中free函数的意义是什么,比如在单链表中我可不可以这样写:free(q);q

free(q); 释放q指针所拥有的资源,告诉系统,本程序不再使用该内存地址(free的功能就是这个)

q=q->next; 然后继续引用该地址,则程序可能会死掉!

c语言free的作用

malloc 和 free 是在系统的栈上分配空间。

malloc是申请,意思就是告诉系统,我要用一块RAM,给我用了别人就不要用了。

free是释放,意思是告诉系统,给我的这块RAM我用完了,不再用了,系统可以把它干别的了。

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