質問

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
uzu

質問

#1

投稿記事 by uzu » 16年前

毎度お世話になります。

reallocについて質問なんですが、

reallocで追加できる、というのは、

mallocで一度確保した領域について、ということでしょうか。

たとえば、

char *c;

と定義したcに対して、

①mallocで一度領域を確保してから、必要であればreallocで拡充するものなのか、

②reallocでいきなりメモリを確保できるものなのか、

どちらなんでしょうか。

(プログラム的に言えば、たとえばループ内で文字列テーブルを作成する場合、
 ①ループ1回目はmallocで1つ目の文字列を格納する領域を確保し、
  ループ2回目以降はreallocで領域を確保する

 なのか
 ②ループ何回目でもreallocで領域を確保できる)

YuO

Re:質問

#2

投稿記事 by YuO » 16年前

いきなりreallocで確保可能です。
realloc(NULL, size)とmalloc(size)は同等の動作をします。

ref) ISO/IEC 9899:1999 7.20.3.4 The realloc function / Paragraph. 3
> If ptr is a null pointer, the realloc function behaves like the malloc function for the specified size.

uzu

Re:質問

#3

投稿記事 by uzu » 16年前

>YuO様
ありがとうございます。
すっきりしました。

閉鎖

“C言語何でも質問掲示板” へ戻る