zoukankan      html  css  js  c++  java
  • 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是重新申请的地址长度

  • 相关阅读:
    实用工具分享
    美国西储大学轴承数据解读
    CSDN去广告插件
    [教程]SPSS for Mac 安装教程
    [教程]Ubuntu 安装 Docker CE
    [教程]Windows操作系统下安装Ubuntu虚拟机
    Chrome视频解析插件
    [软件]MATLAB小波包的分解与重构
    [信号处理]奈奎斯特采样定理
    [软件]LabVIEW编程实例:如何通过TCP协议进行数据通信
  • 原文地址:https://www.cnblogs.com/xmphoenix/p/2148931.html
Copyright © 2011-2022 走看看