zoukankan      html  css  js  c++  java
  • malloc、calloc和realloc比较

    1、先看看它们的原型(stdlib.h):

    void *malloc( size_t size ); 

    void *calloc( size_t numElements, size_t sizeOfElement ); 

    void* realloc(void* ptr, unsigned newsize);

    2、共同之处:

      它们的返回值都是请求系统分配的地址,如果请求失败就返回NULL。

      调用free释放(C++中用new/delete)。

    3、不同之处:

      malloc用于申请一段新的地址,参数size为需要内存空间的长度,如:

      char* p;
      p=(char*)malloc(20);

      calloc与malloc相似,参数sizeOfElement为申请地址的单位元素长度,numElements为元素个数,如:

      char* p;
           p=(char*)calloc(20,sizeof(char));

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

      char* p;
      p=(char*)malloc(sizeof(char)*20);
      p=(char*)realloc(p,sizeof(char)*40);

    4、

  • 相关阅读:
    题目1101:计算表达式
    九度oj 题目1107:搬水果
    [Hihocoder] 字符串排序
    [hzwer] 模拟T
    [Luogu] 宝藏
    [Luogu] 列队
    [Luogu] 奶酪
    [Luogu] 逛公园
    [Luogu] 时间复杂度
    [Luogu] 小凯的疑惑
  • 原文地址:https://www.cnblogs.com/zhangnianyong/p/7063292.html
Copyright © 2011-2022 走看看