我在我的linux系统上运行了以下测试。为什么printf失败的空字符串?
试验1:
printf("test %s\n", NULL);
printf("test %s\n", NULL);
打印:
test (null)
test (null)
试验2:
printf("%s\n", NULL);
printf("%s\n", NULL);
打印
Segmentation fault (core dumped)
上述测试有什么区别?为什么在上面的测试1中不会引发分段错误?
我无法理解为什么在第二次测试中打印失败?
它是未定义的行为,您不能保证看到一致的结果。 – 2014-09-25 22:53:55