5

Perl XS はまったくの初心者です。

私の単純なテスト関数は文字列を取得し、何かを追加します。Perl では、in と one out はスカラー文字列です。

関数にはmallocがあります。メモリを解放する正しい方法は何ですか?

SV *foo (str)
   SV *str
CODE:
    unsigned char *strbuf;
    size_t strlen;
    strbuf = (unsigned char *) SvPV (str, strlen);

    int n = strlen + 10;
    unsigned char *buf = malloc (n);    

    strncpy (buf, strbuf, strlen);
    strncat (buf, "0123456789", 10);

    RETVAL = newSVpv (buf, n);
OUTPUT:
    RETVAL

ありがとう!クリス

4

1 に答える 1