UNIXプログラミング質問すれ Part5
at TECH
[
2ch
|
▼Menu
]
■コピペモード
□
スレを通常表示
□
オプションモード
□このスレッドのURL
■項目テキスト
650:デフォルトの名無しさん 05/03/21 11:50:10 >>648 どちらかに決まってないんじゃ、呼び出した後free()すべきか どうかどうやって決めればいいんでしょう? 651:デフォルトの名無しさん 05/03/21 12:21:58 free() ? 自分が確保したものは自分で free() するのが基本。 strdup() みたいに、ライブラリ内で確保するやつもいるけど、そういうやつはマニュアルに書いてある。 652:デフォルトの名無しさん 05/03/21 12:35:46 >>650 > dirname および basename は、静的に割り当てられたメモリへのポインタを > 返すことがあり、これらの領域は後の関数呼び出しで上書きされるかもしれない。 …の部分に対する疑問? それなら、 char * path = "foo/bar"; char * path_dup = strdup(path_dup); char * path_dir = dirname(path_dup); して、 free(path_dup); すればいいだけだと思うが。 path_dup = dirname(path_dup); みたいにすると、path_dup が strdup で確保したメモリじゃない可能性があるから、 free() するべきかどうか分からなくなるがね。
次ページ
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
レスジャンプ
mixiチェック!
Twitterに投稿
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch
5388日前に更新/215 KB
担当:undef