我在我的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