Я хотел бы сдуть небольшой блок памяти (< = 16 KiB) с помощью zlib. Выход также сохраняется в блоке памяти. No доступ к дискам или базе данных здесь.zlib: как измерять avail_out
В соответствии с документацией я должен называть deflate()
несколько раз, пока весь вход не будет дефлирован. В промежутке времени я должен увеличить размер блока памяти, где идет выход.
Однако это кажется излишне сложным и, возможно, даже неэффективным. Насколько я знаю размер ввода, не могу ли я определить максимальный размер, необходимый для вывода, а затем сделать все с помощью всего одного звонка до deflate()
?
Если да, то какой максимальный выходной размер? Я предполагаю что-то вроде: размер ввода + некоторые байты накладных расходов