● fixed X ユーティリティー - 関数リファレンス

FIXEDVAL値の一次元配列

    int __stdcall    fixedutil_alloc_memtable(PMEMTABLEINFO prm,PMEMFUNC pfunc)

    int __stdcall    fixedutil_free_memtable(PMEMTABLEINFO prm,PMEMFUNC pfunc)

引数

引数名意味
prmMEMTABLEINFO構造体の実体の先頭アドレス
pfuncMEMFUNC構造体の実体の先頭アドレス

戻り値

関数fixedutil_alloc_memtable は、正常終了した場合は STATUS_NORMAL 、設定値が異常な場合は STATUS_PARAMERROR 、メモリの確保に失敗した場合は STATUS_NOTENOUGHMEM を返します。

関数fixedutil_free_memtable は、正常終了した場合は 1 、設定値が異常な場合はゼロを返します。

説明

関数fixedutil_alloc_memtable は FIXEDVAL値の一次元配列を確保し、関数fixedutil_free_memtable は、その一次元配列を解放します。

関数fixedutil_alloc_memtable で配列を確保する場合、MEMTABLEINFO構造体で設定値を渡す必要があります。
MEMTABLEINFO構造体.

typedef struct {
    PFIXEDVAL       *ppmem;
    int             width;
    int             cnt;
    long            reserved;
} MEMTABLEINFO,*PMEMTABLEINFO;
メンバ名意味
ppmem確保された一次元配列の先頭アドレス
width一要素分の数値幅
cnt要素数
reserved予約済み

関数に渡す情報は widthcnt です。

関数fixedutil_alloc_memtable は、与えるパラメータが次のような状態の場合、STATUS_PARAMERROR を返し終了します。
関数fixedutil_free_memtable は、与えるパラメータが次のような状態の場合、ゼロを返し終了します。


fixedutil_alloc_memtable を実行すると、cnt 個の PFIXEDVALのテーブルと、width 幅・cnt 個の FIXEDVAL型変数の領域が確保され、各 FIXEDVAL変数の先頭アドレスがテーブルに格納されます。ppmem にはPFIXEDVALテーブルの先頭アドレスが格納されます。



メモリ確保・解放処理は、
MEMFUNC構造体によりユーザが指定したものを使用します。

fixedutil_alloc_memtable で作成したポインタテーブルやメモリの実体は、他のライブラリ関数で拡張・収縮・削除させる事はできません。ユーザが MEMFUNC構造体で指定した関数に属するものを使用しても操作できませんので、注意してください。

fixedutil_free_memtable は、テーブルの内容を変更していても指定のメモリブロック全てを解放しますので、ポインタテーブルの内容を元に戻さなくても問題ありません。ただし、呼び出し側が独自に確保したメモリのアドレスをテーブルに格納しても、そのメモリは解放されません。