Почему вы должны поместить поля переменной длины в конец макета записи (после полей фиксированной длины)?