c语言free(n)函数 c语言中free函数

C语言的free()函数

因为free函数仅仅是告诉操作系统,这一块内存被释放了,可以用来作其它用途。但是,由于你没有重新对这块内存进行写操作,所以内存中的变量数值并没有发生变化。所以输出值不变。

创新互联是一家专业提供椒江企业网站建设,专注与做网站、网站建设、H5高端网站建设、小程序制作等业务。10年已为椒江众多企业、政府机构等服务。创新互联专业网站制作公司优惠进行中。

通常建议,将这个p用完了也置NULL

关于C语言的free()函数

struct LNode *addroot(struct LNode *_root)

{

struct LNode *p = NULL, *p2 = NULL;

if(_root == NULL)

{

_root = talloc();

dateget(_root);

}

else

{

for(p=_root; p-next != NULL; p=p-next)

;

p2 = talloc();

dateget(p2);

p-next = p2;

}

return _root;

}

======================================

???? for?

for(p=_root; p-next != NULL; p=p-next)

;

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

不可以的。

malloc, alloc, free是c定义的一组内存管理的API函数,当你调用malloc、alloc分配内存时,不仅仅是从堆里面分配得到了可用内存,实际上内存管理子系统还会维护了内存列表。你自己定义的指针不会在这个列表中的,所以free会出问题的。

那么,使用new, GlobalAlloc之类的方式分配的内存可不可以使用free呢。我的回答是,尽量不要,大部分情况都会带来风险。这里面涉及new, malloc, GlobalAlloc, HeapAlloc, LocalAlloc,VirtualAlloc等函数的区别。


分享标题:c语言free(n)函数 c语言中free函数
网站URL:http://scyanting.com/article/dodsijg.html