您的位置:

c语言free函数详解

一、c语言free函数

c语言中的free函数是用来释放malloc函数所分配的内存空间的。在使用malloc函数时为了避免内存泄漏,一定要使用free函数释放掉malloc分配的内存空间。

二、c语言free函数头文件是什么

c语言中使用free函数需要包含stdlib.h头文件。

#include <stdlib.h> /*包含stdlib.h头文件*/

三、c语言free什么意思

c语言中的free函数是用来释放malloc函数所分配的内存空间的。在使用malloc函数时为了避免内存泄漏,需要使用free函数释放掉malloc分配的内存空间。

四、c语言free头文件

c语言中使用free函数需要包含stdlib.h头文件。

#include <stdlib.h> /*包含stdlib.h头文件*/

五、c语言free函数怎么用

使用free函数释放malloc函数分配的内存空间,用法如下:

free(ptr); /*ptr为malloc分配的空间的首地址*/

六、c语言free函数头文件

c语言中使用free函数需要包含stdlib.h头文件。

#include <stdlib.h> /*包含stdlib.h头文件*/

七、c语言free函数源程序

free函数的源程序如下:

void free(void *ptr)
{
     struct _heapinfo *p, *q;
     char *cp;
     size_t n;

    if (ptr != NULL) {
        for (q=NULL,p=_heapinfo.p._pnext; p != NULL; q=p,p=p->_pnext) {
            cp = (char*)p + METASIZE + p->_size;
            if (ptr < cp && ptr >= (char*)p + METASIZE) {
                /* found the block to free, initialize linking fields */
                n = ((char*)p + METASIZE) - (char*)ptr;
                if (n >= METASIZE + SIZE_T_SIZE) {
                    /* split the block */
                    q = p->_pnext;
                    p->_pnext = (_HEAPINFO*)((char*)ptr - METASIZE);
                    p->_pnext->_pnext = q;
                    p->_pnext->_size = n - METASIZE;
                    p->_size -= p->_pnext->_size;
                    p = p->_pnext;
                    }
                p->_useflag = _USEDENTRY;
                _heapinfo._heap_resetsize -= p->_size;
                _heapinfo._heap_resetsize += p->_size = 0;
                /* finally, call HeapMinimize to merge free entries */
                _heapinfo._pentry = (void *)HeapMinimize((void *)p);
                return;
                }
            }
        /* not found */
        _malloc_internal_error();
        }
    }

八、c语言free和malloc崩溃

在使用free函数的时候,如果传入的参数不是由malloc函数所分配的内存空间的首地址,程序会崩溃。同样的,如果使用malloc函数分配内存空间失败,程序也会崩溃。

九、c语言free函数可以单独用吗

可以单独使用free函数,但是前提是必须保证传入的参数是由malloc函数所分配的内存空间的首地址。

十、c语言free函数用法

使用free函数释放malloc函数分配的内存空间,用法如下:

void *p = malloc(100); /*分配100个字节的内存空间*/
if (p != NULL)
{
    /*使用内存空间*/
    ...
    free(p); /*释放内存空间*/
}

十一、总结

c语言中的free函数是用来释放malloc函数所分配的内存空间的。在使用malloc函数时为了避免内存泄漏,一定要使用free函数释放掉malloc分配的内存空间。使用free函数需要包含stdlib.h头文件,使用方法是传入malloc分配的内存空间的首地址。