[mecab-users 306] Re: mecab_sparse_tonode が文字列をコピーしない

Zurück zum Archiv-Index

Taku Kudo taku****@chase*****
2007年 9月 2日 (日) 21:19:06 JST


工藤です

07/09/02 に Kamonohasi<kamon****@gmail*****> さんは書きました:
> http://mecab.sourceforge.net/libmecab.html
> には、「戻り値のポインタが指すメモリ領域は, 呼び出し側で管理する必要はありません」とありますが、
> ・libmecab.dll 0.96
> ・Windows XP sp2
> 上では引数の文字列と戻り値の mecab_node_t->surface が同じアドレスを使用するようです。

すいません。このメモリ領域とは、文字列のことではなくて、Node オブジェクトの
ことです。ですので、同じアドレスになるのは仕様です。原理的にコピーする
必要はないですし、こうしたほうが高速であるためデフォルトではコピーを
行いません。

もし mecab側でコピーして欲しい場合は、-C オプション
 -C, --allocate-sentence        allocate new memory for input sentence
をつけてください。

mecab_t *n = mecab_new2("-C");

> ちなみに、上記リファレンスに掲載されている mecab_node_t は古いようです。

そうですね。修正いたします。

くどう

>




mecab-users メーリングリストの案内
Zurück zum Archiv-Index