什么被认为是处理意味着成为字符串的最佳做法 函数的参数,即
int use_the_force(const char *dark_side_file_name) {
char *safe_force_it_is = Yoda(dark_side_file_name);
return useTheForceYouCan(safe_force_it_is);
}
假设呼叫者是Darth Vader,为了确保当我们使用像strlen / strnlen或memchr这样的东西时,Yoda会怎么做?safe_force_it_is"当我们使用我们期望的有效字符串时,我们不会遇到黑暗的一面?
答案 0 :(得分:5)
获取未知长度的字符串并尝试确定它是否为空终止是不合理的。如果不是,你怎么知道何时停止?
可能有一些疯狂的,不便携的想法,但在理智的程序中不需要它们。您需要知道输入是以null结尾的,否则您需要知道它的最大长度。