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()を使ってエラーコードを得るとよい.
  • WSGetInteger8Array()は,WSTPヘッダファイルwstp.hの中で宣言される.

例題

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