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是重新申请的地址长度

  • 相关阅读:
    cf B. Sereja and Suffixes
    cf E. Dima and Magic Guitar
    cf D. Dima and Trap Graph
    cf C. Dima and Salad
    最短路径问题(floyd)
    Drainage Ditches(网络流(EK算法))
    图结构练习—BFSDFS—判断可达性(BFS)
    Sorting It All Out(拓扑排序)
    Power Network(最大流(EK算法))
    Labeling Balls(拓扑)
  • 原文地址:https://www.cnblogs.com/xmphoenix/p/2148931.html
Copyright © 2011-2022 走看看