2013-03-05 5 views
-3

У меня есть байтовый массив (дБ). Я пытаюсь извлечь байты один за другим. Почему этот код не работает? Любые указатели? По логике я ошибаюсь? Или что-то не так с моей реализацией?Извлечение байтов из массива байтов один за другим (C)

+2

Можете ли вы показать весь код. В противном случае мы должны угадать, какими являются ваши переменные. –

+3

Что означает «не работает»? Ошибка при компиляции? Если да, укажите сообщения об ошибках. Вы имеете в виду segfault? Если да, укажите свой код в его компилируемой форме. Логически вы ошибаетесь, задавая нам вопрос, потому что вы не предоставили нам достаточно информации, чтобы ответить на вопрос. – Sebivor

+0

'unsigned int' не похоже, что он будет байтом, так как' int' гарантированно будет иметь длину не менее 16 бит. Если вы не на очень фанковой платформе, где байт составляет 16 бит. : x –

ответ

0

попробовать

int main() 
{ 
    unsigned char tmp; 
    tmp = getByte(dB+dOffset); dOffset++; 
} 

он должен работать

+0

Кодирование работает отлично и проверено. –

+0

проверить это http://codepad.org/MoKuOaCJ –

+0

Работать отлично;) Возвращаясь на поле;) 3 калитки вниз;) Спасибо :) –

1

Вы байтовые буферы объявлены следующим образом:

unsigned char *decodeBuf; 

Чтобы прочитать одно значение из этого буфера, при смещении i вы просто написать:

unsigned char b = decodeBuf[i]; 
+0

@WhozCraig Извините, я неправильно прочитал код. Как любитель. :-( –

+0

Pfft. Вы * забыли * больше о программировании WIN32, чем я помню, и я занимаюсь этим уже 22 года. Не беспокойтесь, приятель. – WhozCraig

Смежные вопросы