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

Не очевидное смещение к полям структуры - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Дайте задач http://www.cyberforum.ru/cpp-beginners/thread636652.html
Здравствуйте! Изучаю я c++ уже больше 2 лет. Встречался с сортировками, поисками, хэш-таблицами, наследованием, virtual функциями, стэками, списками одно/дву связными, очередями, многопоточностью(совсем чуть-чуть), деревьями всякими, переопределением операторов, немного winapi - рисовал 3d щар с правильным освещением и еще можно что нить вспомнить =) так вот хотел летом написать всем...
C++ Указатели Здравствуйте! Так сложилось что я не понимаю как использовать указатели, всвязи с этим не могу двигаться дальше по изучению С++. ?: почему при объявлении указателя на integer, например int *p, далее в программе используеться переменная p без звёздочки? Что это значит? http://www.cyberforum.ru/cpp-beginners/thread636648.html
C++ Русские буквы в консоли
У меня прекрастно выводятся русские буквы в консоль, но если я ввожу русский текст в какуюту переменную, то вывести ее коректно не получается: #include "stdafx.h" #include <iostream> #include <string> #include <conio.h> using namespace std;
C++ Не получается создать поток
Здравствуйте. Есть код, создающий поток: #include "stdafx.h" #include <Windows.h> #include <process.h> void inThread(void* pParams); void main() {
C++ Отказ в доступе http://www.cyberforum.ru/cpp-beginners/thread636620.html
Я программно создаю в директории C:\Windows папку с фалами, но при выполнении этой программе мне пишут в консоль: отказано в доступе не удается найти указанный путь. Что делать? Добавлено через 58 секунд Вот код фунцкии: void dir(void) { bool i; if(ifstream ("C:\\Windows\\BasDoc\\dir.txt")) {i=true;} else {i=false;} if (i==true) {cout<<i;}
C++ Закон отражения в ограниченой зоне на консольном приложении Честно скажу, с++ впервые увидел в январе, понимаю 7е очень много, но более менее, пишу программу нужно задать с терминала размер поля в консоли, поле рисуется псевдографикой, с этим я разобрался. дальше нужно задать вектор по которому будет двигаться шарик, в данном случае это '*'. не могли бы вы объяснит мне как можно осуществить закон отражения в с++? шарик должен перемещаться в этой зоне.... подробнее

Показать сообщение отдельно
ZiminAS1990
 Аватар для ZiminAS1990
2 / 2 / 0
Регистрация: 27.07.2012
Сообщений: 31
12.08.2012, 23:55     Не очевидное смещение к полям структуры
Доброе время суток!

Столкнулся с непонятным мне вопросом... у меня есть структура:
C
1
2
3
4
struct A {
  uint16_t x;
  uint32_t y;
}
Я предполагал, что в памяти она будет хранится как массив из 6ти байт:

0 ---------> +2
+----------+------------+
| x(2байта) | y(4 байта) |
+----------+------------+

Однако sizeof говорит, что структура имеет размер 8 байт, а в памяти она хранится в таком виде:

0---------> +2-----------> +4
+----------+-------------+----------+
| x(2байта) | ??(2 байта) | y(4байта) |
+----------+-------------+----------+

Почему так, и с чем это связано? С выравниванием памяти, или с чем?

Проблема в том, что я с одной стороны создаю массив из 6ти байт и заполняю его, а с другой - принимаю этот массив и накладываю на него данную структуру... естественно, что получаю совсем другие числа в полях структуры, чем те, которые ожидаю....

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