WSGetInteger8Array (C 函数)

int WSGetInteger8Array( WSLINK l , unsigned char ** s , int ** d , char *** h , int * depth )

从记做 l 的 WSTP 连接中获取一个8位整数数组,数组储存于 s,维数储存于 d,标头储存于 h,深度储存于 depth.

更多信息

  • 数组 s 在内存中的布局类似于称为 unsigned char s[m][n].的 C 数组.
  • h 给出字符串列表,这些字符串对应于数组中每层标头的符号名称.
  • WSGetInteger8Array() 可分配必须通过调用 WSReleaseInteger8Array()才能释放的内存. 若 WSGetInteger8Array() 失败且函数返回值说明存在错误,则不要调用有 s 内容的 WSReleaseInteger8Array().
  • WSGetInteger8Array() 会返回不可变数据.
  • 若发生错误,WSGetInteger8Array() 会返回0,若函数成功,则返回非零值.
  • WSGetInteger8Array() 失败,可使用 WSError() 检索错误代码.
  • WSTP 的标头文件 wstp.h. 已对 WSGetInteger8Array() 作出声明.

范例

基本范例  (1)

#include "wstp.h"

/* A function for reading an array of 8-bit integers from a link */

void f(WSLINK l)
{
    unsigned char *data;
    int *dims;
    char **heads;
    int depth;

    if(! WSGetInteger8Array(l, &data, &dims, &heads, &depth))
    { /* Unable to read the array of integers from l */ }

    /* ... */

    WSReleaseInteger8Array(l, data, dims, heads, depth);
}