-1

私はここで途方に暮れています。しばらくして私のコードを投稿します...「厄介な」コードの一部を抽出するには長すぎます。ここで私の問題を説明します: 文字列 (ファイルまたはディレクトリへのパス) を、文字列とその長さ{ char *path; size_t path_len}である構造体の配列に格納します。を挿入すると 76 になります。配列から抽出すると、文字列の長さが 78 になるか、配列内の単純な文字列でさえ 77 になります。 pathpath_enpath_lenstrncpystrlen

元の文字列の長さが 77 未満の他のすべてのケースは問題なく動作します。

私は困惑しています。

4

1 に答える 1

6

strncpy を使用すると、結果のコピーされた文字列を null で終了することを覚えていますか?

文字列が N よりも長い場合、Strncpy は文字列を null で終了しません (N は strncpy に渡す 3 番目の引数です)。

于 2011-07-13T08:12:44.053 に答える