Заводить счетчик введенных символов (и удаленных), мне кажется не лучшим выходом.
Ну а как без счетчика? Вот только надо хранить не это, а указатель на последний байт программы - это ведь всего лишь два несчастных байта.
Инкремент при вводе символа, декремент при удалении.
Это позволит и от костыля с поиском "большого количества нулей" избавиться, т.к. точный размер программы всегда можно получить в одно вычитание, неважно, увеличился он или уменьшился.