По сути, вы передаете пустую строку в качестве аргумента, поэтому он должен рассматриваться как таковой.
Для %s
спецификатора преобразования, с printf()
семейством
[...] Символы из массива
записывается до (но не включая) завершающего нулевого символа. [...]
В вашем случае нулевой терминатор появляется в первом элементе массива 1014 *, вот и все.
Просто для пояснения, доступ к нулевому терминатору - это нормально, доступ к указателю NULL
- это не нормально, и они оба разные вещи !!