Форум программистов  
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > C++ > C++ Builder
Регистрация

Восстановить пароль
Повторная активизация e-mail

Ответ
 
Опции темы
Старый 06.10.2017, 23:24   #1
redfred
Новичок
 
Регистрация: 06.10.2017
Сообщений: 4
Репутация: 10
По умолчанию Почему размер класса не равен нулю?

Собственно вопрос озвучен в названии темы. Не могу понять почему компиляор под пустой класс выделяет память

Код:

#include <stdlib.h>
#include <stdio.h>
#include <conio.h>

#include <iostream>

class A {};    // Декларируем пустой класс.
A aaa;          // Создаем объект типа А.

int _tmain(int argc, _TCHAR* argv[])
{
    std::cout << sizeof(A) << std::endl;        // Выдает размер - 8.
    std::cout << sizeof(aaa) << std::endl;     // Выдает размер - 8.

    getch();
    return 0;
}


Последний раз редактировалось Аватар; 06.10.2017 в 23:43.
redfred вне форума   Ответить с цитированием
Старый 06.10.2017, 23:58   #2
p51x
Профессионал
 
Регистрация: 15.02.2010
Сообщений: 10,189
Репутация: 1601

icq: 216409213
По умолчанию

Варавнивание и настройки компилятора. Например, гцц может спокойно выдать 1.
__________________
Запомните раз и навсегда: помочь != "решите за меня"!
p51x на форуме   Ответить с цитированием
Старый 07.10.2017, 00:08   #3
redfred
Новичок
 
Регистрация: 06.10.2017
Сообщений: 4
Репутация: 10
По умолчанию

Цитата:
Сообщение от p51x Посмотреть сообщение
Варавнивание и настройки компилятора. Например, гцц может спокойно выдать 1.
Про выравнивание я помню. Даже вставив директиву препроцессора #pragma pack(1)
я получаю размер объекта равному одному байту. Но так и не могу понять почему его размер не может быть равным нулю ))
redfred вне форума   Ответить с цитированием
Старый 07.10.2017, 00:18   #4
redfred
Новичок
 
Регистрация: 06.10.2017
Сообщений: 4
Репутация: 10
По умолчанию

Попутный вопрос - возможно ли декларировать тип или создать какой-нибудь объект, размер которого (sizeof(...)) будет 0?
redfred вне форума   Ответить с цитированием
Старый 07.10.2017, 00:20   #5
waleri
Профессионал
 
Регистрация: 13.07.2012
Адрес: Нижний Новгород
Сообщений: 5,136
Репутация: 1564
По умолчанию

Цитата:
Сообщение от redfred Посмотреть сообщение
размер которого (sizeof(...)) будет 0?
Нет.
Таковы требования языка.
waleri вне форума   Ответить с цитированием
Старый 07.10.2017, 00:25   #6
redfred
Новичок
 
Регистрация: 06.10.2017
Сообщений: 4
Репутация: 10
По умолчанию

Спасибо за ответы. Вопрос закрыт. Сознание начинает приходить в порядок ))
redfred вне форума   Ответить с цитированием
Старый 07.10.2017, 09:16   #7
Black Fregat
Программист
Участник клуба
 
Аватар для Black Fregat
 
Регистрация: 23.06.2009
Сообщений: 508
Репутация: 373
По умолчанию

Цитата:
Сообщение от waleri Посмотреть сообщение
Таковы требования языка.
И они имеют вполне разумное объяснение - разработчики языка хотели, чтобы два принципиально разных объекта не могли получить одинаковый адрес
Black Fregat вне форума   Ответить с цитированием
Ответ



Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Создать текстовый файл с целыми числами, никакой из компонентов файла не равен нулю / Pascal ABC Barsisback Помощь студентам 0 13.06.2014 01:27
MinGW - почему такой большой размер файла? frommars Qt и кроссплатформенное программирование С/С++ 5 18.10.2012 16:08
Почему значения ординат в гарфике равны нулю?? Tolias Microsoft Office Excel 4 10.10.2011 22:20
Почему результат цикла равен нулю? Alkagolik Помощь студентам 2 11.03.2011 15:45




15:18.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.

купить трафик


как улучшить посещаемость, а также решения по монетизации сайтов, видео и приложений

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru