Форум программистов, компьютерный форум CyberForum.ru

Преобразование 2-х char в один short int - C++

Восстановить пароль Регистрация
 
sergey.shuvalov
-2 / 1 / 0
Регистрация: 06.11.2011
Сообщений: 259
28.06.2013, 14:50     Преобразование 2-х char в один short int #1
Пробую преобразовать 2 char в один short int таким образом:

C++
1
2
3
4
char buf[88200];
short int skl[44100];
int kol=0;
for(int i=0;i<44100*2;i=i+2){skl[kol]=buf[i]<<8|buf[i+1];kol++;}
да что-то не получается, компилятор не согласен.
Посоветуйте, как сделать.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
iv-a
 Аватар для iv-a
15 / 15 / 0
Регистрация: 25.06.2013
Сообщений: 63
28.06.2013, 15:24     Преобразование 2-х char в один short int #2
с чем компилятор не согласен?
sergey.shuvalov
-2 / 1 / 0
Регистрация: 06.11.2011
Сообщений: 259
28.06.2013, 15:27  [ТС]     Преобразование 2-х char в один short int #3
Отладчик стопорится и выскакивает сообщение продолжить или прервать.
iv-a
 Аватар для iv-a
15 / 15 / 0
Регистрация: 25.06.2013
Сообщений: 63
28.06.2013, 15:38     Преобразование 2-х char в один short int #4
а массив buf вроде не инициализирован.

Добавлено через 29 секунд
может из-за этого ошибка
nexen
187 / 180 / 3
Регистрация: 27.01.2012
Сообщений: 1,335
28.06.2013, 15:47     Преобразование 2-х char в один short int #5
@sergey.shuvalov, попробуй это:
Цитата Сообщение от sergey.shuvalov Посмотреть сообщение
for(int i=0;i<44100*2;i=i+2){skl[kol]=buf[i]<<8|buf[i+1];kol++;}
заменить на:
C++
1
for(int i=0;i<44100*2;i=i+2){skl[kol]=int(buf[i])<<8| int(buf[i+1]);kol++;}
Вполне возможно, что при попытке charVariable << 8 выходит 0 (но тут компилиться должно)
Или на что у вас там компилятор ругается?
sergey.shuvalov
-2 / 1 / 0
Регистрация: 06.11.2011
Сообщений: 259
28.06.2013, 15:51  [ТС]     Преобразование 2-х char в один short int #6
пишет:
Необработанное исключение в "0x77a615de" в "PROGA.exe": 0xC0000005: Нарушение прав доступа при чтении "0x003e7000".
nexen
187 / 180 / 3
Регистрация: 27.01.2012
Сообщений: 1,335
28.06.2013, 16:00     Преобразование 2-х char в один short int #7
@sergey.shuvalov, либо ошибка в другой части кода, которую вы не привели, либо буфер и правда не заполнялся перед использованием..
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.06.2013, 16:00     Преобразование 2-х char в один short int
Еще ссылки по теме:

C++ Преобразование int к char
записать по-битого один short int в два char C++
C++ Преобразование Int в char

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
sergey.shuvalov
-2 / 1 / 0
Регистрация: 06.11.2011
Сообщений: 259
28.06.2013, 16:00  [ТС]     Преобразование 2-х char в один short int #8
Всё заработало. И так и так. Причина изначально была, в том что в цикле вывода в файл, размер цикла превосходил размер массива buf. Всем спасибо.
Yandex
Объявления
28.06.2013, 16:00     Преобразование 2-х char в один short int
Ответ Создать тему
Опции темы

Текущее время: 15:49. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru