MLSetAllocParameter()

void MLSetAllocParameter(char* p, MLAllocator a, MLDeallocator d)
设置在 MLParameters 对象 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;
    MLParameters p;
    unsigned long revision;

    revision = MLNewParameters((char *)&p, MLREVISION, MLAPIREVISION);
    if(! revision)
        { /* unable to initialize the MLParameters object */ }

    MLSetAllocParameter(&p, Custom_Allocator, Custom_Deallocator);

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

    /* ... */

    MLDeinitialize(env);
    return 0;
}
New to Mathematica? Find your learning path »
Have a question? Ask support »