This is documentation for Mathematica 6, which was
based on an earlier version of the Wolfram Language.
View current documentation (Version 11.2)
MathLink C Function

MLGetByteArray()

int MLGetByteArray(MLINK link, unsigned char **a, int **dims, char ***heads, int *d)
gets an array of 1-byte sized integers from the MathLink connection specified by link, storing the array in a, its dimensions in dims and its depth in d.
  • The array a is laid out in memory like a C array declared as unsigned char a[m][n]....
  • heads gives a list of character strings corresponding to the names of symbols that appear as heads at each level in the array.
  • MLGetByteArray() allocates memory which must be disowned by calling MLReleaseByteArray(). If MLGetByteArray() fails and the function's return value indicates an error, do not call MLReleaseByteArray() on the contents of a.
  • MLGetByteArray() returns immutable data.
  • MLGetByteArray() returns 0 in the event of an error, and a nonzero value if the function succeeds.
  • Use MLError() to retrieve the error code if MLGetByteArray() fails.
  • MLGetByteArray() is declared in the MathLink header file mathlink.h.
#include "mathlink.h"

/* read a byte-sized integer array from a link */

void f(MLINK lp)
{
    unsigned char *data;
    int *dims;
    char **heads;
    int d;

    if(! MLGetByteArray(lp, &data, &dims, &heads, &d))
        {
            /* unable to read the integer array from lp */
            return;
        }

    /* ... */

    MLReleaseByteArray(lp, data, dims, heads, d);
}