- 686 名前:デフォルトの名無しさん [2009/10/03(土) 05:06:10 ]
- >>679
どうせnewSVpvn使うならこれでどうだ?。ナルストリングで文句があるならもう知らん。 newSVpvは初期化文字列が空でもちゃんと6バイト確保してくれるところがミソだ。 普通ならまず(char *)sを作ってnewSVpv(s, 5)すりゃ何の問題もないんだが、それだと 困るんだよな? #include "EXTERN.h" #include "perl.h" #include "XSUB.h" #include "ppport.h" MODULE = Foo PACKAGE = Foo SV * hoge() CODE: int i = 0; char c = (char)0; SV *string = newSVpv((char *)&c, 5); char *s = SvPVX(string); for (i = 0; i < 5; i++) s[i] = 'x'; s[i] = (char)0; RETVAL = string; OUTPUT: RETVAL
|

|