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);
}