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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
RNT
Автор FAQ
3133 / 353 / 3
Регистрация: 08.08.2009
Сообщений: 1,126
#1

Выделение памяти - C++

27.09.2010, 17:50. Просмотров 650. Ответов 3
Метки нет (Все метки)

Эта программа должна забрать у системы 10 МБ, но диспетчер задач показывает, что программа забирает 163 МБ. Почему ?

C++
1
2
3
4
5
6
7
8
9
10
11
#include<iostream>
using namespace std;
 
int main()
{
    cin.get(); //ожидание подтверждения
    for(unsigned long i=0; i<10485760; i++) //выделение 10 МБ
        new char;
    cin.get(); //чтобы окно программы не закрылось
    return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.09.2010, 17:50     Выделение памяти
Посмотрите здесь:

Выделение памяти - C++
Часто возникает такая проблема, когда конфигурирую проект как Release происходит ошибка выделения памяти (при вызывании new), например...

Выделение памяти - C++
Вот кусок кода, класс и функция добавления в список Класс занимает 64 бита, я добавляю 10 элементов в список - 640 бит Потом отнимаю...

Выделение памяти - C++
Здравствуйте! #include&lt;iostream&gt; int main() { int *mass = new int ; int *mass2 = new int ; std::cout &lt;&lt; (unsigned int)mass &lt;&lt;...

Выделение памяти - C++
Добрый вечер. Немогу никак понять некоторые тонкости выделения памяти. Во первых: на что указывает указатель, при записи char*...

Выделение памяти - C++
Какой суммарный объем памяти в байтах будут занимать поля CObj всех объектов класса CEx в этой программе: class CEx {public: static...

Выделение памяти - C++
Платформа и компилятор x64. Установлено 64Gb ОЗУ, 60Gb из них откусил SQL Server. Пытаюсь сделать следующее: struct Dictionary { ...

Выделение памяти - C++
Доброго времени суток. Чтобы выделить память под двумерный массив в такой форме: //n - переменная, M - константа arr = new double...

Выделение памяти - C++
int main() { FILE *fIn = NULL, *fOut =NULL; Error EMyError; CNodeStack *Start; CNodeStack *ListF = new CNodeStack; ...

Выделение памяти - C++
Всем доброго времени суток! Пытаюсь сделать связанный список на 100кк элементов, но не выделив памяти и под половину, программа жрёт 4...

Выделение памяти(С = С++) - C++
Привет. Нужна помощь, в выделении памяти. Есть код на С, нужно перевести его в С++. int SaveFileOne(int i) { FILE *f; if ((f =...

Выделение памяти - C++
Доброго всем вечера. В книжке нашел задание: определить класс, представляющий стек. Сделал так, что при заполнении всего стека,...

Выделение памяти - C++
В чём ошибка выделения памяти? Подскажите, друзья! #include &quot;stdafx.h&quot; #include &quot;stdio.h&quot; #include &lt;iostream&gt; #include...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Black Fregat
1369 / 999 / 217
Регистрация: 31.05.2009
Сообщений: 4,189
27.09.2010, 18:28     Выделение памяти #2
Выравнивание?

Попробуйте напечатать разность между соседними new char - многое сразу станет ясно

Добавлено через 1 минуту
Плюс там еще наверняка создаются структуры управления памятью для каждого выделенного блока
RNT
Автор FAQ
3133 / 353 / 3
Регистрация: 08.08.2009
Сообщений: 1,126
27.09.2010, 19:27  [ТС]     Выделение памяти #3
Цитата Сообщение от Black Fregat Посмотреть сообщение
Выравнивание?
Не понял. Какое выравнивание ?

Цитата Сообщение от Black Fregat Посмотреть сообщение
Попробуйте напечатать разность между соседними new char - многое сразу станет ясно
Такой код выводит -120
C++
1
cout<< (new char)-(new char)<<endl;
Не сходится. 163 МБ/10 МБ = 16,3
Но 16,3 != 120
Black Fregat
1369 / 999 / 217
Регистрация: 31.05.2009
Сообщений: 4,189
28.09.2010, 00:36     Выделение памяти #4
У меня получился переменный шаг, но большая часть промежутков - 16. Так что близко:
Код
1 x 256
16 x 8387677
172 x 1
16 x 4085
20 x 1
16 x 2093996
Yandex
Объявления
28.09.2010, 00:36     Выделение памяти
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru