Цитата(Xenia @ Nov 15 2014, 02:37)

Как строку, но с ограничителем в формате:
char array[5] = {'a', 'b', 'c', 'd', 'e'}
printf( "%5.5s\n", array);
такой формат запретит печатать строку дальше 5-го символа, а потому будет не важно, есть в конце нуль или нет.
Цитата
The width and precision formatting parameters may be omitted, or they can be a fixed number embedded in the format string, or passed as another function argument when indicated by an asterisk "*" in the format string. For example printf("%*d", 5, 10) will result in " 10" being printed, with a total width of 5 characters, and printf("%.*s", 3, "abcdef") will result in "abc" being printed.
Легко заметить, что нету каких либо требований, что бы аргумент размера был константой
Сообщение отредактировал alx.bilous - Nov 24 2014, 11:10