Единственный способ сделать это хуже, это то, что старый код никогда не инициализировал (или не использовал) значение в некоторых путях кода
Другая проблема это
char data_string[99] = "data data data";
Инициализирует 99 символов, а не только первые 15. Это
.
char data_strings[99] = "";
намного дороже, чем это
char data_strings[99];
data_strings[0] = 0;
Конечно, если буфер действительно должен быть достаточно большим, чтобы содержать «данные данных»,
тогда это лучше
char data_string[] = "data data data";
Но это заставляет задуматься, нужно ли было вообще когда-либо копировать строку в переменную стека.