| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Общие вопросы > как определить размер буфера |
| Автор: ZC1989 9.1.2007, 11:59 | ||
| вобщем я тут уже советовался на подобную тему, но щас вопросец другой... надо прочитать файл из архива, для этого надо передать в фенкию чтения буффер и размер не жатого файла, со вторым всё просто, размер я узнаю прочитав инфу о файле... а вот как определить размер бефера? я делаю щас так, в принципе нормальный результат получается, но иногда шибки, или не всё читается или лишнее...
в первой строчке выделяю память для буффера во второй его читаю, ну а в третьей хочу увидеть что прочиталось... здесь UnZInfo.uncompressed_size - размер не жатого файла; а тип voidp по сути то же что и void... как мне превильно задавать размер буфера что бы было идеально под размер файла? |
| Автор: Sartorius 9.1.2007, 12:03 | ||||
наверно void * ... В любом случае непонятно, почему не char.
|
| Автор: Daevaorn 9.1.2007, 12:04 | ||
по сути, если это тоже самое, то это не скомпилируется. вот эта высшая математика явно лишняя. Зачем мудрить?
|
| Автор: ZC1989 9.1.2007, 12:06 | ||
Daevaorn, надо определить точно размер иначе вообще ошибка функией даётся...
потому что слишком много |
| Автор: Daevaorn 9.1.2007, 12:07 | ||
ааа, voidp это void*, тогда Buffer имеет тип void** или что-то такое.
Не понятно правда зачем так |
| Автор: ZC1989 9.1.2007, 12:07 |
| Sartorius, да, * забыл... извиняйте... |
| Автор: Sartorius 9.1.2007, 12:08 |
| Уже ответили |
| Автор: Daevaorn 9.1.2007, 12:08 |
a UnZInfo.uncompressed_size это не точный размер? давай лучше сигнатуру функции unzReadCurrentFile напиши |
| Автор: ZC1989 9.1.2007, 12:08 | ||
| Daevaorn, это не я придумал... это для ZIPа нужно... ему ток свой, наследованный от void*voidp тип понятен Добавлено @ 12:09
|
| Автор: Daevaorn 9.1.2007, 12:11 |
| ZC1989, тогда точно подходит, что мы тебе с Sartorius написали вначале |
| Автор: ZC1989 9.1.2007, 12:15 |
| Daevaorn, я пробовал сотню раз...не подходит... при выводе после последнего символа идёт куча левых символов... тупо мусор... в том варианте который в начале мой написан, погрешность получается до 1 символа... как я понимаю это из-за того что в одном voidp (типа эллементе массива) хранится 5 или 6 символов типа char... такая вот фишка... |
| Автор: Daevaorn 9.1.2007, 12:19 |
а один раз заглянуть в книжку не пробовал? Добавлено @ 12:21 посмотри также на MessageBox , что ей нужно в качестве второго параметра. |
| Автор: ZC1989 9.1.2007, 12:21 |
| Daevaorn, так вот в связи с тем что в одним эллементе этого voidp несколько символов содержиться и возникает сложность поставить этот \0 - про него я помню всегда |
| Автор: ZC1989 9.1.2007, 12:24 | ||
это название окна... в данном случае окно без названия |
| Автор: Sartorius 9.1.2007, 12:30 |
| http://www.gamedev.ru/articles/?id=70122 |
| Автор: ZC1989 9.1.2007, 12:31 | ||
ядрёны пасатижы! это сработало! ни каких ошибок! СПАСИБО! |
| Автор: Daevaorn 9.1.2007, 12:31 |
| Автор: ZC1989 9.1.2007, 12:32 |
| Sartorius, пасибо, но именно этот урок и был самым нормальным по ZIP, что я нашёл в сети... |