MLSetAllocParameter (C Function)

MLSetAllocParameter has been replaced by WSSetAllocParameter.

void MLSetAllocParameter(MLEnvironmentParameter p,MLAllocator a,MLDeallocator d)

sets the memory allocator and deallocator specified by a and d in the MLEnvironmentParameter object p for later use with MLInitialize().

Details

  • Use MLSetAllocParameter() to install special memory allocators in the MathLink library. The library will use the allocators specified by a and d for all dynamic memory allocations.
  • a and d must have the same call signature as the C memory allocator functions malloc() and free().
  • a and d must be thread-safe.
  • MLSetAllocParameter() is declared in the MathLink header file mathlink.h.

Examples

Basic Examples  (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;
}