Russian Qt Forum
Ноябрь 24, 2024, 09:29 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Указатели в КЮТЕ  (Прочитано 3439 раз)
DenisPA
Гость
« : Апрель 19, 2011, 17:10 »

Вот кусочек кода:

Код:
unsigned int F1(QByteArray * arr, int start){
    unsigned int rez;
    rez  = arr[start] * 256;
    rez += arr[start + 1];
    return rez;
}

F2(){
QByteArray a;
unsigned int r = F1(&a, 0);
}

Но почему оно не компилируется???

rez  = arr[start] * 256;
rez += arr[start + 1];


Для каждой красной строчки:

1) /home/...QtSDK/Desktop/Qt/473/gcc/include/QtCore/qbytearray.h:365: ошибка: ‘QByteArray::operator QNoImplicitBoolCast() const’ is private
2)/home/.../test.cpp:18: ошибка: within this context
Записан
mutineer
Гость
« Ответ #1 : Апрель 19, 2011, 17:22 »

Код:
(*arr)[start]
вот так сделай
Записан
DenisPA
Гость
« Ответ #2 : Апрель 19, 2011, 17:30 »

Спасибо! Все получилось!
Как то забыл про это Улыбающийся
Записан
kuzulis
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2812


Просмотр профиля
« Ответ #3 : Апрель 19, 2011, 17:31 »

или
Код
C++ (Qt)
quint16 F1(const QByteArray  *arr, int start){
   quint16 rez = arr->at(start++) << 8;
   rez += arr->at(start);
   return rez;
}
 
F2(){
QByteArray a;
quint16 r = F1(&a, 0);
}

Хотя, в данном случае, лучше в F1 передать указатель на данные в виде: const *char
« Последнее редактирование: Апрель 19, 2011, 17:34 от kuzulis » Записан

ArchLinux x86_64 / Win10 64 bit
DenisPA
Гость
« Ответ #4 : Апрель 19, 2011, 17:35 »

О! Спасибо это удобнее!
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.122 секунд. Запросов: 23.