UNIXプログラミング質 ..
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
5496日前に更新/215 KB
担当:undef