Я предполагаю, что вы хотите заменить код следующим образом:
malloc((foo * 2 + 6) * sizeof(char))
С
char big_enough[2000];
Что касается потерь - нет ничего плохого в том, чтобы тратить пару байтов время от времени, но если вы будете делать это все время, это начнет складываться.
Но более серьезная опасность заключается в том, что вам нужно быть уверенным, что этого всегда будет достаточно. Использование константы опасно - может показаться, что 2000 байтов должно быть достаточно, но вы уверены, что невозможно для кого-то, кому нужно больше? Помните, что этот вид кода может легко создать уязвимости переполнения буфера, и работа, которую вы сохранили, не вычисляя правильный размер, вероятно, меньше, чем объем дополнительной работы, которую вам теперь нужно сделать, чтобы убедиться, что каждый буфер не переполняется время, когда вы читаете или пишете в него.