WSGetInteger16Array (C 函数)

int WSGetInteger16Array(WSLINK link,short **a,int **dims,char ***heads,int *d)

从由 link 指定的 WSTP 连接中获取一个16位整数数组,并把数组存于 a,维数存于 dims,深度存于 d.

更多信息

  • 数组 a 在内存中的布局像一个被声明为 的 C 数组.
  • heads 给出对应于出现在数组中的每层作为标头的符号名称的字符字符串列表.
  • WSGetInteger16Array() 分配必须调用 WSReleaseInteger16Array() 来释放的内存. 如果 WSGetInteger16Array() 失败,函数的返回值表明一个错误,不要调用有 a 内容的 WSReleaseInteger16Array().
  • 外部程序不应该修改由 WSGetInteger16Array() 产生的数组.
  • WSGetInteger16Array() 返回不可变的数据.
  • 若发生错误,则 WSGetInteger16Array() 返回0;若函数成功,则返回非零值.
  • WSGetInteger16Array() 失败,则使用 WSError() 检索错误代码.
  • WSTP 的标头文件 wstp.h 已对 WSGetInteger16Array() 作出声明.

范例

基本范例  (1)

#include "wstp.h"

/* read an array of 16-bit integers from a link */

void f(WSLINK lp)
{
    short *data;
    int *dims;
    char **heads;
    int d;

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

    /* ... */

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