Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

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

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.12.2016, 11:51   #1
Андрей 93
Люблю жизнь
Форумчанин
 
Аватар для Андрей 93
 
Регистрация: 01.12.2009
Сообщений: 193
По умолчанию Использование памяти

Имеем указатель на объект класса
Код:
class smSth
{
public:
	smSth* New(int A);		//+1
	void Del(smSth *Sth);	//-1
	void Talk();			// says "A"
private:
	int A;
	smSth *prev, *next;
	smSth();
	~smSth();

};
Данными-членами этого класса являются один int и два pointer'a, которые занимают по 4 байта памяти, а сам объект класса - 12 байт (что проверено функцией sizeof() ).
Однако, создавая несколько объектов данного класса в куче, программа присваивает им адреса:
Цитата:
0040B3A8
0040B360
0040B318
0040B2D0
...
Таким образом, адреса отличаются на 72.
Значит ли это, что в действительности объекты занимают в памяти по 72 байта? Или Между ними существуют пустые участки памяти?
Не стыдно не уметь, стыдно не учиться.
Андрей 93 вне форума Ответить с цитированием
Старый 25.12.2016, 21:21   #2
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,330
По умолчанию

Между ними существуют пустые участки памяти.
waleri вне форума Ответить с цитированием
Старый 25.12.2016, 22:16   #3
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,708
По умолчанию

1. никто, включая new, не обещал вам последовательных кусков для разных вызовов
2. вы не указали компилятор и параметры сборки - были ли включены проверки безопасности, контроль стека, try и прочее..
p51x вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Использование указателей и динамической памяти Black_butterfly Помощь студентам 3 02.05.2011 18:07
Кольцевая очередь на массиве в статической памяти с элементами в динамической памяти ]tach[ Общие вопросы C/C++ 1 19.01.2011 13:16
Создание и использование региона памяти. Maksim_27_10 Win Api 2 01.08.2010 23:42
Использование Оп.памяти программами zonclayv Win Api 11 31.03.2010 17:03
Использование ActiveX контролов и DLLок напрямую из буфера памяти (C#) Zen2007 Общие вопросы .NET 1 10.08.2009 13:35