XtMalloc(3Xt) — NEWS-OS Programmer’s Manual
名称
XtMalloc, XtCalloc, XtRealloc, XtFree, XtNew, 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バイト数または配列の要素数を指定します。
ptr古い記憶領域または解放すべき記憶領域の ブロックを指すポインタを指定します。
sizeひとつの配列要素のサイズ ( バイト単位 ) または、必要なバイト数を 指定します。
string事前に宣言された文字列を指定します。
type事前に宣言されたデータタイプを指定します。
解説
XtMalloc 関数は、少なくとも指定されたサイズのバイトの記憶領域ブロックを指す ポインタを返します。 新しいブロックを割当てるだけの十分なメモリがない場合は、 XtMalloc は XtErrorMsg を呼び出します。 XtCalloc 関数は、指定されたサイズの要素を指定された数をもつ配列のスペースに 割当て、そのスペースを 0 に初期化します。 新しいブロックを割当てるだけの十分なメモリがない場合は、 XtCalloc は XtErrorMsg を呼び出します。 XtRealloc 関数は、記憶領域のブロックのサイズを変更します(おそらくそれを移動 して)。 それから、 XtRealloc は、古い内容全部(そうでなければ、いっぱいになるまで)を 新しいブロックにコピーし、古いブロックを解放します。 新しいブロックを割当てるだけの十分なメモリがない場合は、 XtRealloc は XtErrorMsg を呼び出します。 ptr が NULL の場合は、 XtRealloc は、古い内容をコピーすることなしに、新しい記憶領域を割当てます。 すなわち、 XtRealloc は単に、 XtMalloc を呼び出します。 XtFree 関数は、記憶領域を返し、それを再使用できるようにします。 ptr が NULL の場合、 XtFree はすぐに戻ります。 XtNew は割当てられた記憶領域を指すポインタを返します。 新しいブロックを割当てるだけの十分なメモリがない場合は、 XtNew は、 XtErrorMsg を呼び出します。 XtNew は、次のような引数を指定して XtMalloc を呼び出す便利なマクロです。
((type ∗) XtMalloc((unsigned) sizeof(type))
XtNewString は、割当てられた記憶領域を指すポインタを返します。 新しいブロックを割当てるだけの十分なメモリがない場合は、 XtNewString は、 XtErrorMsg を呼び出します。 XtNewString は、次のような引数を指定して XtMalloc を呼び出す便利なマクロです。
(strcpy(XtMalloc((unsigned) strlen(str) + 1), str))
関連事項
X Toolkit Intrinsics − C Language Interface
Xlib − C Language X Interface
NEWS-OS Release 4.1C