UNIXプログラミング質問すれ Part5at TECHUNIXプログラミング質問すれ Part5 - 暇つぶし2ch■コピペモード□スレを通常表示□オプションモード□このスレッドの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() するべきかどうか分からなくなるがね。 次ページ最新レス表示レスジャンプ類似スレ一覧スレッドの検索話題のニュースおまかせリストオプションしおりを挟むスレッドに書込スレッドの一覧暇つぶし2ch