-5

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?
}
4

1 に答える 1

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

// otherwise do a true realloc

はどうかと言うと

希望するサイズの連続したサイズがない場合はどうなりますか。

次にrealloc戻り、エラーを示すようにNULL設定します。errno

于 2013-05-01T20:09:26.723 に答える