MLGetRealArray (C 函数)

MLGetRealArray 已经被 WSGetRealArray 所取代.

int MLGetRealArray(MLINK link,double **a,long **dims,char ***heads,long *d)

从由 link 指定的 MathLink 连接中获取一个浮点数数组,并把数组存于 a,维数存于 dims,深度存于 d.

更多信息

  • 数组 a 在内存中的布局像一个被声明为 的 C 数组.
  • heads 给出对应于出现在数组中的每层作为标头的符号名称的字符字符串列表.
  • MLGetRealArray() 分配必须调用 MLDisownRealArray()来释放的内存. 如果 MLGetRealArray() 失败,函数的返回值表明一个错误,不要调用有 a 内容的 WLReleaseRealArray().
  • MLGetRealArray() 返回不可变数据.
  • MLGetRealArray() 在错误事件中返回0,如果函数成功则返回非零值.
  • 如果 MLGetRealArray() 失败,则使用 MLError() 检索错误代码.
  • MLGetRealArray() 等同于 MLGetReal64Array().

范例

基本范例  (1)

#include "mathlink.h"

/* read an array of double-precision floating-point numbers from a link */

void f(MLINK lp)
{
    double *data;
    long *dims;
    char **heads;
    long d; /* stores the rank of the array */

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

    /* ... */

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