-1

我在这里不知所措。将在短时间内发布我的代码......只是它太长了,无法提取部分“令人不安”的代码。将在这里解释我的问题:我将字符串(文件或目录的路径)存储在结构数组中,{ char *path; size_t path_len}其中path字符串path_en及其长度。插入时path_len为 76。从数组中提取时strncpy,字符串长度变为 78,甚至strlen数组中的简单字符串为 77。

原始字符串长度小于 77 的所有其他情况都可以正常工作。

我很困惑。

4

1 回答 1

6

使用 strncpy -- 你还记得 null 终止生成的复制字符串吗?

如果字符串长于 N,则 strncpy 不会终止字符串(N 是您传递给 strncpy 的第三个参数)

于 2011-07-13T08:12:44.053 回答