• c语言内存分配函数


    三个函数的声明分别是:
    void* realloc(void* ptr, unsigned newsize);
    void* malloc(unsigned size);
    void* calloc(size_t nelem, size_t elsize);
    都在stdlib.h函数库内

    原型:extern void *realloc(void *mem_address, unsigned int newsize);

    用法:#include <alloc.h>
    功能:改变mem_address所指内存区域的大小为newsize长度。

    说明:如果重新分配成功则返回指向被分配内存的指针,否则返回空指针NULL。
            当内存不再使用时,应使用free()函数将内存块释放。

    原型:extern void *malloc(unsigned int num_bytes);
    用法:#include <alloc.h>

    功能:分配长度为num_bytes字节的内存块

    说明:如果分配成功则返回指向被分配内存的指针,否则返回空指针NULL。
            当内存不再使用时,应使用free()函数将内存块释放。

    原型:extern void *calloc(int num_elems, int elem_size);
    用法:#include <alloc.h>
    功能:为具有num_elems个长度为elem_size元素的数组分配内存
    说明:如果分配成功则返回指向被分配内存的指针,否则返回空指针NULL。
            当内存不再使用时,应使用free()函数将内存块释放。

    区别:

    1、calloc在动态分配完内存后,自动初始化该内存空间为零,而malloc不初始化,里边数据是随机的垃圾数据

    2、realloc是给一个已经分配了地址的指针重新分配空间,参数ptr为原有的空间地址,newsize是重新申请的地址长度

  • 相关阅读:
    监控JVM回收
    linux JDK安装
    linux 免登陆设置
    搭建redis集群总结
    redis开启持久化
    搭建redis主从复制,遇到的问题总结
    Redis配置参数说明
    模板模式
    观察者模式
    适配器模式
  • 原文地址:https://www.cnblogs.com/xmphoenix/p/2148931.html
Copyright © 2020-2023  润新知