【发布时间】:2012-01-10 12:47:12
【问题描述】:
此代码是否已定义行为?
char *str = NULL;
printf("%s\n",str);
在 C++(98/03 和 11)和 C (99) 标准的上下文中。
【问题讨论】:
-
很抱歉听起来如此刺耳,但是:如果你不得不问,你可能做错了。
-
没有“空字符串”这样的东西。几乎没有以“字符串”开头的东西(当然,除非您的意思是
std::string)。 -
@KerrekSB 来自标准:“一个 string 是一个连续的字符序列,以第一个空字符终止并包括第一个空字符。” 但是,是的, NULL 字符串对我来说过于简单了。
标签: c++ c standards undefined-behavior