Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Упрощение кода http://www.cyberforum.ru/cpp-beginners/thread513319.html
void Polynomials::print(){ // Вывод полинома int i; int k; // признак того, что очередной коэффициент равен 1 int f; // признак того, что коэффициент - первый по счету (0 значит...
C++ Получить вывод команды оболочки - функция, обратная system() Доброго времени суток, товарищи! Расскажите, пожалуйста, существует ли в С++ функция, обратная по действию system(). То есть, если system() отправляет команду терминалу, то есть ли функция,... http://www.cyberforum.ru/cpp-beginners/thread513316.html
C++ Как можно упростить exp^CA (если вводимые числа 5 и 4)
Дана функция: Как можно упростить exp^CA(если вводимые числа 5 и 4), т.е C*A = 20 exp^20, не вводить ведь exp 20 раз Возможно ли упрощение данной формулы?
Программирование рекурсий. Преобразование числа в двоичное C++
Дано целое неотрицательное число n. Преобразовать его в двоичное число.
C++ Отсортировать элементы, предшествующие первому нулевому элементу по возрастанию http://www.cyberforum.ru/cpp-beginners/thread513278.html
Дан массив А(50). Отсортировать элементы, предшествующие первому нулевому элементу, по возрастанию алгоритмом «Сортировка вставками».
C++ Программирование рекурсий: отделить цифры данного числа и сложить межу собой Дано целое неотрицательное число n. Отделить цифры данного числа и сложить межу собой. подробнее
kravam
быдлокодер
1710 / 897 / 105
Регистрация: 04.06.2008
Сообщений: 5,549
0

Есть структура, компилятор считывает некоторые её поля ТОЛЬКО из адресов, кратным двум, а их там нет! (полей), как быть?

06.03.2012, 13:30. Просмотров 504. Ответов 6
Метки (Все метки)

То есть вот структура:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
struct TGAHEADER
{
         char   IdLength;
         char   ColourMapType;
         char   DataTypeCode;
         WORD    ColourMapOrigin;
         WORD    ColourMapLength;
         char   ColourMapDepth;
         WORD    x_Origin;
         WORD    y_Origin;
         WORD    Width;
         WORD    Height;
         char   BitsPerPixel;
         char   ImageDescriptor;
};
TGAHEADER tgaheader;
 
//И она располагается в каком-то файле Fire.tag, вот я её считал:
fread(&tgaHeader, 1/* sizeof(TGAHEADER)*/, 18, pFile);
Теперь как обратиться к полю BitsPerPixel? Вот так не обратиться!
C++
1
tgaHeader.BitsPerPixel
А потому, что предыдущее поле ColourMapOrigin считьывается не по смещению 3, где оно есть, а по смещению 4. НАверное, потому что word. Соттветственно и последующие поля считываются не оттуда, где они находятся, а с других адресов

Ну я извращаюсь щас всяко, так например:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
struct TGAHEADER
{
         char   IdLength;
         char   ColourMapType;
         char   DataTypeCode;
         
         //Если понадобится один из пяти байтов, опять придётся извращаться
         char x [5];
 
         WORD    x_Origin;
         WORD    y_Origin;
         WORD    Width;
         WORD    Height;
         char   BitsPerPixel;
         char   ImageDescriptor;
};
Можно так ещё:
C++
1
*((char*)&tgaHeader+ 16;
Но это костыли какие-то, есть грамотный способ? Спасибо, кто откликнется!

Вернуться к обсуждению:
Есть структура, компилятор считывает некоторые её поля ТОЛЬКО из адресов, кратным двум, а их там нет! (полей), как быть?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.03.2012, 13:30
Готовые ответы и решения:

Как проверить запись на существование и добавить ее в базу данных если ее там нет или отредактировать если она там есть?
INSERT INTO AdvancedAccess...

Вернуть номер позиции заданного символа в строке, если он там есть, и 0, его там нет
Доброго времени суток! Помогите решить задание на с# (тема: Методы. Рекурсивные методы): Написать...

Программа считывает очередную строку совершенно верно, но в ней она находит цифры, которых там вообще нет
У меня возникла такая проблема. В некотором файле в каждой строке записан какой-то текст(может быть...

Суммирование полей, некоторые из которых могут быть пустыми
Клиент делает заказ и заказывает разные товары: напр. окна, двери и обои. Эти товары находятся в...

Дано натуральное число N. Определить есть ли оно кратным K, но не кратным L
Помогите написать программу такого рода: Дано натуральное число N. Определить есть ли оно кратным...

6
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru