UNIXプログラミング質問すれ Part5
■ このスレッドは過去ログ倉庫に格納されています
0652デフォルトの名無しさん
2005/03/21(月) 12:35:46> 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() するべきかどうか分からなくなるがね。
■ このスレッドは過去ログ倉庫に格納されています