[pochy-user] メモリリークの報告

Back to archive index

sabor****@olive***** sabor****@olive*****
2003年 9月 12日 (金) 23:19:01 JST


平中です。
ご報告頂きありがとうございます。

>  regex_t reg;
> を使うなら
>  regfree(&reg) ;
> をしなきゃいけないようです。

お恥ずかしい限りです。
了解です。

> なので、regfree(&reg)を呼んだら
> 
> \HeaderInfo.cpp(185) : error C2660: 'regfree' : 関数が不正な 1 個の実引数を
> ともなって呼び出されました。
> 
> と怒られました。
> _regex.hをみると
> extern void regfree _RE_ARGS ((regex_t *preg));
> 
> #if __STDC__
> #define _RE_ARGS(args) args
> #else /* not __STDC__ */
> #define _RE_ARGS(args) ()
> #endif /* not __STDC__ */
> 
> で、よくわからないので、(^^;
> regfreeの_RE_ARGSとカッコを外したらコンパイルOK。
> (ツッコミよろしくです)

私もよくわからないんですが、下記のコメントから_REG_ARGS外しても
問題ないように思います。という訳で、外してしまいましょう。

以下_REG_ARGS定義直前のコメント
/* Declarations for routines.  */
/* To avoid duplicating every routine declaration -- once with a
   prototype (if we are ANSI), and once without (if we aren't) -- we
   use the following macro to declare argument types.  This
   unfortunately clutters up the declarations a bit, but I think it's
   worth it.  */
> 
> 以下は regfree(&reg) ; を追加した関数になります。

--途中省略--

> 色々やったので、絶対正しく必要な処理かどうか微妙に迷うところですが、
> まあこんな感じということで。^^;
> 本当はregcompの返り値も見たほうがよさそうですね・・・
> 
> とりあえず、見つけたところだけ報告しました。
> 以上です。

早速ご教授頂いた内容でソースを修正することにします。




pochy-user メーリングリストの案内
Back to archive index