首页 文章

Malloc或Calloc以及[重复]

提问于
浏览
0

可能重复:c malloc和calloc之间的区别

calloc与malloc相同吗?或者有什么不同

char * ptr; ptr =(char *)calloc(1,100)

or

char * ptr; ptr =(char *)malloc(100); memset的(PTR,0100);

2 回答

  • 1

    这是 calloc 由gcc定义的方式:

    PTR
    calloc (size_t nelem, size_t elsize)
    {
      register PTR ptr;
    
      if (nelem == 0 || elsize == 0)
        nelem = elsize = 1;
    
      ptr = malloc (nelem * elsize);
    
      if (ptr) bzero (ptr, nelem * elsize);
    
      return ptr;
    }
    

    http://gcc.gnu.org/viewcvs/trunk/libiberty/calloc.c?view=markup

    void
    bzero (void *to, size_t count)
    {
      memset (to, 0, count);
    }
    
  • 2

    结果,它是一样的 .

    两者都分配内存然后将其设置为0

相关问题