在C中使用带有malloc的realloc

时间:2013-05-01 20:07:46

标签: c malloc realloc

我有点理解realloc的作用但是当试图重新分配一定大小的内存时似乎没有点击我的想法。如果没有想要的大小的可想象的大小怎么办?或者,如果将null作为指针传入或者传入的大小为0.我知道如果大小为0则它想要释放该内存。 题: 使用malloc和realloc?

void *realloc(void *ptr, size_t newsize)
{
  if(newsize == 0)
    free(ptr);
  if(ptr == NULL)
    //does something
  //how does it malloc a size and copy everything over?
}

1 个答案:

答案 0 :(得分:0)

if (newsize == 0) {
    free(ptr);
    return;
}
if (ptr == NULL)
    return malloc(size);

// otherwise do a true realloc

至于

如果没有所需大小的连续大小,该怎么办?

然后realloc返回NULL并设置errno以指示错误。