旧バージョンの WOLFRAM言語MATHLINK C 関数

MLSetAllocParameter()
This feature is not supported on the Wolfram Cloud.

に置き換えられた.

void MLSetAllocParameter(MLEnvironmentParameter p,MLAllocator a,MLDeallocator d)
MLEnvironmentParameterオブジェクトp の中に,ad によって指定されたメモリアロケータとデアロケータを,後でMLInitialize()で使用するために設定する.

詳細詳細

  • MLSetAllocParameter()を使うと,MathLink ライブラリに特別なメモリアロケータをインストールすることができる.ライブラリはad で指定されたアロケータを使って,すべての同時メモリ割当てを行うようになる.
  • ad は,C言語のメモリアロケータ(割当て)関数である malloc()free()と同じ呼出し署名を持たなくてはならない.
  • ad は同じ位置に現れる要素をまとめることができるものでなくてはならない.
  • MLSetAllocParameter()MathLink ヘッダファイル mathlink.hの中で宣言される.

例題例題すべて開くすべて閉じる

  (1)  (1)

#include "mathlink.h"

void * Custom_Allocator(size_t size)
{
    /* ... */
}

void Custom_Deallocator(void *ptr)
{
    /* ... */
}


int main()
{
    MLEnvironment env;
    MLEnvironmentParameter p;
    unsigned long revision;

    p = MLNewParameters(MLREVISION, MLAPIREVISION);
    if(p == (MLEnvironmentParameter)0))
    { /* unable to initialize the MLEnvironmentParameters object */ }

    MLSetAllocParameter(ep, Custom_Allocator, Custom_Deallocator);

    /* Install the Custom* memory allocator in MathLink. */
    env = MLInitialize(ep);
    if(env == (MLENV)0)
    { /* unable to initialize MathLink environment */ }

    MLReleaseParameters(p);

    /* ... */

    MLDeinitialize(env);
    return 0;
}