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

оператор sizeof - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Выяснение счастливого года... http://www.cyberforum.ru/cpp-beginners/thread285479.html
Всем Доброго времени суток... Народ, помогите пожалуйста написать программу в Borland c++ 3.1 Вот сама задача... Введите день и месяц своего рождения. Выясните, какой ближайший год будет для вас счастливым. Год называется счастливым, если остаток от деления суммы его цифр на 10 совпадает с аналогичным остатком сумм цифр месяца или дня рождения. Я на сколько понял нужно разложить...
C++ Функции для запроса и чтения ФИО, почтового адреса и даты Постройте функции для запроса и чтения ФИО, почтового адреса и даты, и проверьте корректность ввода, с использованием контейнерных классов и алгоритмов библиотеки. Именуйте темы осмысленно. Название темы должно максимально полно отражать её содержимое. http://www.cyberforum.ru/cpp-beginners/thread285474.html
Матрицы и векторы C++
есть готовый код. нужно исправить код так, чтобы вводились с клавиатуры: размер матрицы, сама матрица и свободные элементы. Понимаю, что вопрос туповатый, но просто не успеваю сделать. Спасибо заранее #include <iostream.h> #include <math.h> const int n = 4; double Delta(double *X, double *x, double a); void PrintVector(double *X); int main() { double A = { { 0.32, -0.05, ...
C++ Ошибка "ссылка на неразрешенный внешний символ"
#ifndef class_H #define class_H #include "stdafx.h" #include "iostream" #include "algorithm" #include "iterator" using namespace std;
C++ Получение каталога выполнения текущей программы http://www.cyberforum.ru/cpp-beginners/thread285458.html
необходимо из в ходе выполнения самой программы получить папку, в которой она выполняется знает кто-нить? есть всякие GetCurrentDir, но без понятия как эти DWORD переконвертить в string
C++ Посоветуйте литературу по динамическим структурам данных Всем привет! Какую литературу посоветуете по этой теме. подробнее

Показать сообщение отдельно
alexsvk
8 / 8 / 1
Регистрация: 15.07.2010
Сообщений: 255
29.04.2011, 12:53  [ТС]     оператор sizeof
Цитата Сообщение от Evg Посмотреть сообщение
Не совсем так. У каждого типа помимо размера есть ещё и праметр выравнивание. Для базовых типов (кроме, обычно, long double) как правило выравнивание совпадает с размером. Т.е. переменная типа int (размером 4 байта) в памяти лежит по адресу, кратному 4 (т.е. говорят, что выровнена на 4). То же мамое касается и полей структуры. В структуре поле типа double должно быть выровнено на 8, а потому после переменных int и char (в сумме занимающих 5 байт) появится дырка, чтобы смещение поля double было 8.

Выравнивание всей структуры совпадает с максимальным выравниванием среди полей. Размер структуры должен быть кратен выравниванию структуры (в противном случае массив из структур будет лежать в памяти криво). Т.е. если структура содержит в себе "double + char", то в конце структуры всё равно образуется дырка в 7 байт из-за того, что размер стуркутуры должен быть кратен 8 (т.е. выравниванию структуры, которое есть выравнивание double)

Есть специальные конструкции, для принудительной установки выравнивания типов или переменных, но пока тебе это не нужно
Вы упомянули "для базовых типов", а что, если имеется long double. Что тогда?
 
Текущее время: 23:43. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru