如何判断字符串是否在Eclipse和gdb中以空值终止?在Debug for“Default”下,如果我只是看到要存储在引号中的文本,我可以假设它已正确地终止了吗? 另外,复制字符串以确保它被正确终止的最佳方法是什么?
答案 0 :(得分:1)
使用strncpy是安全的,这允许您指定最大长度,以防它未终止。检查是否有点棘手但是如果在调试器中它正确显示然后它被正确终止。
编辑:应该已经明确表示只有在指定长度时函数调用不会产生奇怪结果的意义上它才安全,你必须手动终止字符串。
一般来说,它唯一不会被空终止的时间是由于程序员错误,因为我相信C库中的所有函数都返回正确终止的字符串,可能的错误可能会忘记终止符的额外字节。我很难想到我遇到的字符串问题是因为除了自定义操作函数之外还有一个失败的null终止符。