在Eclipse和gdb中,如何判断字符串是否以null结尾?在Debug for "Default“下,如果我只看到我想要存储在引号中的文本,我可以假定它正确地以null结尾?另外,复制字符串以确保其正确终止的最佳方法是什么?
发布于 2012-02-27 14:40:12
为了安全起见,使用strncpy,这允许您指定一个最大长度,以防它没有终止。这是一种棘手的检查,但是的,如果在调试器中它显示正确,那么它就被正确地终止了。
编辑:应该清楚的是,如果你指定了一个长度,你仍然必须手动终止字符串,这样函数调用才不会产生奇怪的结果,这才是安全的。
一般来说,唯一不会空终止的时候是由于程序员的错误,因为我相信C库中的所有函数都会返回正确终止的字符串,可能的错误是忘记了终止符的额外字节。我很难想象什么时候我遇到的字符串问题是由于失败的空终止符造成的,除了自定义操作函数。
https://stackoverflow.com/questions/9460977
复制相似问题