class stack
{
struct unit
{
int value;
unit *past;
};
unit *pointer = nullptr;
int count = 0;
public:
stack() {}
~stack()
{
unit *buf;
while (pointer != nullptr)
{
buf = pointer;
pointer = pointer->past;
delete(buf);
}
}
void Add(int value)
{
unit *buf = new unit;
buf->value = value;
buf->past = pointer;
pointer = buf;
count++;
}
int HowManySize() const
{
cout << "value - " << sizeof(int) << "\tpoint - " << sizeof(unit*) << "\tunit - " << sizeof(unit) << endl;
return (sizeof(unit) * count) + sizeof(this);
}
};
void main()
{
stack obj;
Sleep(2000);
for (int i = 0; i < 10000000; i++)
obj.Add(i);
int w = obj.HowManySize();
cout << w / 1024 / 1024 << " Mbit\t" << ((float)w / 1024 /1024 /1024) << " Gbit";
Sleep(2000);
obj.~stack();
Sleep(2000);
return;
}
При вызове функции Add() 10 000 000 раз функция HowManySize() вернет значение которое будет равно примерно 152 мегабайтам. Однако средства диагностики Visual Studio покажет что было занято почти в шесть раз больше.
При запуске деструктора используемая память падает с 870 мегабайт до 500 килобайт, следовательно утечки памяти нет.
Вопрос почему потребляется так много памяти?
Потребление оперативной памяти в среде vs:
Потребление вне среды:
Виртуальный выделенный сервер (VDS) становится отличным выбором
Итак, задача : Реализовать шаблонные функции (массив передаётся в функцию в качестве параметра), выполняющие следующие действия:
Нужно сделать, чтобы на странице, где расположено видео с YoutubeКак сделать, чтобы кнопка появлялась в заданое время от не загрузки страницы...
Есть 2 календаря от bootstrap 3, нужно чтобы при выборе 2 дат, было выбрано не меньше 3 дней, при первом старте как вывеси получилось, а вот при изменении...