В C (все варианты, я полагаю), const
, по иронии судьбы, не является константным выражением в C. В версиях до C99 длины массивов должны быть константным выражением.
Однако в C99 есть концепция «массивов переменной длины», поэтому, если вы компилируете компилятор, совместимый с C99, ваш код должен быть допустимым, даже если BUF_SIZE
не является константным выражением.