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() 分配的内存空间,以便其他程序再次使用。

  • 相关阅读:
    自动装配Bean
    django的models模型 关联关系和关系查询
    django的models模块查询方法
    django的models模型类的常用数据类型和选项
    linux下查看mysql日志文件的方法
    Error loading MySQLdb module: No module named 'MySQLdb'----------- django成功连接mysql数据库的方法
    Django admin 中抛出 'WSGIRequest' object has no attribute 'user'的错误
    linux搭建django项目基本步骤
    找出字符串的最长不重复字串
    判断一个字符串是不是一个合法的IP地址
  • 原文地址:https://www.cnblogs.com/panlangen/p/8067547.html
Copyright © 2011-2022 走看看