我在这里不知所措。
将在短时间内发布我的代码...只是它太长了,无法提取部分“令人不安”的代码。将expalin我的问题:我将一个字符串(文件或目录的路径)存储在结构{ char *path; size_t path_len}
的数组中,其中path
是字符串,path_en
是其长度。在插入path_len
时是76.在使用strncpy
从数组中提取时,字符串长度变为78或甚至数组中字符串的简单strlen
表示为77.
原始字符串长度小于77的所有其他情况都可以正常工作。
我很困惑。
答案 0 :(得分:6)
使用strncpy - 你还记得null终止生成的复制字符串吗?
如果字符串长度超过N(N是传递给strncpy的第3个参数),则strncpy不会终止字符串