字符串长度为76的问题

时间:2011-07-13 08:04:10

标签: c strlen strncpy

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

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

我很困惑。

1 个答案:

答案 0 :(得分:6)

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

如果字符串长度超过N(N是传递给strncpy的第3个参数),则strncpy不会终止字符串