Museum

Home

Lab Overview

Retrotechnology Articles

⇒ Online Manual

Media Vault

Software Library

Restoration Projects

Artifacts Sought

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

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026