zoukankan      html  css  js  c++  java
  • malloc()函数,calloc()函数,realloc()函数,free()函数

    malloc()函数

    头文件:#include <stdlib.h>

    malloc() 函数用来动态地分配内存空间,其原型为:
    void* malloc (size_t size);

    【参数说明】size 为需要分配的内存空间的大小,以字节(Byte)计。

    【函数说明】malloc() 在堆区分配一块指定大小的内存空间,用来存放数据。这块内存空间在函数执行完成后不会被初始化,它们的值是未知的。如果希望在分配内存的同时进行初始化,请使用 calloc() 函数。

    【返回值】分配成功返回指向该内存的地址,失败则返回 NULL。

    由于申请内存空间时可能有也可能没有,所以需要自行判断是否申请成功,再进行后续操作。

    calloc()函数

    头文件:#include <stdlib.h>

    calloc() 函数用来动态地分配内存空间并初始化为 0,其原型为:
        void* calloc (size_t num, size_t size);

    calloc() 在内存中动态地分配 num 个长度为 size 的连续空间,并将每一个字节都初始化为 0。所以它的结果是分配了 num*size 个字节长度的内存空间,并且每个字节的值都是0。

    【返回值】分配成功返回指向该内存的地址,失败则返回 NULL。

    realloc()函数

    头文件:#include <stdlib.h>

    realloc() 函数用来重新分配内存空间,其原型为:
        void* realloc (void* ptr, size_t size);

    【参数说明】ptr 为需要重新分配的内存空间指针,size 为新的内存空间的大小。

    realloc() 对 ptr 指向的内存重新分配 size 大小的空间,size 可比原来的大或者小,还可以不变(如果你无聊的话)。当 malloc()calloc() 分配的内存空间不够用时,就可以用 realloc() 来调整已分配的内存。

    如果 ptr 为 NULL,它的效果和 malloc() 相同,即分配 size 字节的内存空间。

    如果 size 的值为 0,那么 ptr 指向的内存空间就会被释放,但是由于没有开辟新的内存空间,所以会返回空指针;类似于调用 free()

    free()函数

    头文件:#include <stdlib.h>

    free() 函数用来释放动态分配的内存空间,其原型为:
        void free (void* ptr);

    free() 可以释放由 malloc()calloc()realloc() 分配的内存空间,以便其他程序再次使用。

  • 相关阅读:
    安卓开发之ListAdapter(二)
    两listview联动
    不要天真了,这些简历HR一看就知道你是培训的,质量不佳的那种
    天真!这简历一看就是包装过的
    一线城市为何难逃离,职场饭局正在“失宠”?
    腾讯架构师分享的Java程序员需要突破的技术要点
    百度最穷程序员现身,工作4年晒出存款后,网友:你是真穷!
    震惊微软!招程序员的流程居然...
    python基础认识(一)
    input修改placeholder文字颜色
  • 原文地址:https://www.cnblogs.com/panlangen/p/8067547.html
Copyright © 2011-2022 走看看