- 652 名前:デフォルトの名無しさん mailto:sage [2005/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() するべきかどうか分からなくなるがね。
|

|