XtNew(3) メモリ管理用関数

Other Alias

XtMalloc, XtCalloc, XtRealloc, XtFree, XtNewString

書式

char *XtMalloc(size);

      Cardinal size;

char *XtCalloc(num, size);

      Cardinal num;

      Cardinal size;

char *XtRealloc(ptr, num);

      char *ptr;

      Cardinal num;

void XtFree(ptr);

      char *ptr;

type *XtNew(type);

      type;

String XtNewString(string);

      String string;

引き数

num
バイト数(XtRealloc)又は配列要素の数(XtCalloc)を指定する。
ptr
解放される古い記憶領域へのポインタ(XtFree)、又は記憶領域ブロックへのポ インタ(XtRealloc)を指定する。
size
バイト単位で表した配列要素の大きさ(XtCalloc)、又は要求するバイト数 (XtMalloc)を指定する。
string
既に宣言されている文字列を指定する。
type
既に宣言されているデータ型を指定する。

説明

XtMalloc 関数は指定したバイトサイズの記憶領域ブロックへのポインタを返す。 もし新しいブロックを割り当てることのできる十分なメモリがない場合、 XtMallocXtErrorMsg を呼び出す。

XtCalloc 関数は指定された大きさの配列要素を同じく指定された数だけのメモリを割り 当て、その領域を 0 で初期化する。 もし新しいブロックを割り当てることのできる十分なメモリがない場合、 XtCallocXtErrorMsg を呼び出す。

XtRealloc 関数は記憶領域ブロックの大きさを変更する(記憶領域は移動される可能性が ある)。 次に新しいブロックに古い内容(又は新しいブロックの大きさに入る内容)を 複写し、古いブロックを解放する。 もし新しいブロックを割り当てることのできる十分なメモリがない場合、 XtReallocXtErrorMsg を呼び出す。 また ptr が NULL ならば XtRealloc は古い内容を複写せずに新しい記憶領域を割り当てる。 つまり単に XtMalloc を呼ぶだけである。

XtFree 関数は記憶領域を解放し、再利用できるようにする。 もし ptr が NULL ならば XtFree は何もせずに終了する。

XtNew は割り当てられた記憶領域へのポインタを返す。 もし新しいブロックを割り当てることのできる十分なメモリがない場合、 XtNewXtErrorMsg を呼び出す。 XtNew は次の指定された引き数で XtMalloc を呼び出す簡易マクロである:

((type *) XtMalloc((unsigned) sizeof(type))

XtNewString は割り当てられた記憶領域へのポインタを返す。 もし新しいブロックを割り当てることのできる十分なメモリがない場合、 XtNewStringXtErrorMsg を呼び出す。 XtNewString は次の指定された引き数で XtMalloc を呼び出す簡易マクロである:

(strcpy(XtMalloc((unsigned) strlen(str) + 1), str))