crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

niXman
  опции профиля:
сообщение 25.6.2008, 1:01
Сообщение #1


Участник
**

Группа: Участник
Сообщений: 169
Регистрация: 18.6.2008
Пользователь №: 204

Спасибо сказали: 1 раз(а)




Репутация:   0  


Кто нибудь использовал се чудо?
У меня результат не сходится со стандартными утилитами.
Вот код:
        U32 crc = 0;
        const U32 DEFAULT_BUFFER_SIZE = 1024*32;
    boost::crc_32_type CRC32;
    
    char* buf = new char[DEFAULT_BUFFER_SIZE+1];
    
    QFile file( "any.bin" );
    Q_ASSERT( file.open(QIODevice::ReadOnly) );
    while ( !file.atEnd() ) {
        rd = file.read(buf, DEFAULT_BUFFER_SIZE );
        CRC32.process_bytes( buf, rd );
        
    }
    delete buf;
    
    crc = CRC32.checksum();
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
ViGOur
  опции профиля:
сообщение 25.6.2008, 14:14
Сообщение #2


Мастер
******

Группа: Модератор
Сообщений: 3296
Регистрация: 9.10.2007
Из: Москва
Пользователь №: 4

Спасибо сказали: 231 раз(а)




Репутация:   40  


Цитата(niXman @ 25.6.2008, 2:01) *
char* buf = new char[DEFAULT_BUFFER_SIZE+1];
Зачем тебе +1? Достаточно и:
char* buf = new char[DEFAULT_BUFFER_SIZE];

:)

Цитата(niXman @ 25.6.2008, 2:01) *
delete buf;
В корне не правильно, нужно: delete []buf;

И еще в примере выводится результат в 16'тиричной, а у тебя в 10'точной.

Сообщение отредактировал ViGOur - 25.6.2008, 14:46
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме


Тема закрытаНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


RSS Рейтинг@Mail.ru Текстовая версия Сейчас: 14.7.2025, 11:11