Предположим, у меня есть функция, принимающая int *p
, которая, как я знаю, на самом деле указывает только на значения от 0 до 99. Однако компилятор этого не знает, поэтому, если я напишу:
char buffer[3];
snprintf(buffer, "%02d", *p);
Я получаю предупреждение (по крайней мере, в GCC 8.x) - это что-то вроде:
warning: ‘%02d’ directive output may be truncated writing between 2 and 11 bytes into a region of size 2 [-Wformat-truncation=]
snprintf(buffer, "%02d", *p);
Как мне обойти это предупреждение?