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 は古いようです。 そうですね。修正いたします。 くどう >