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

Что почитать про распределение памяти? - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Проблема с подключением стандартных либ http://www.cyberforum.ru/cpp-beginners/thread160972.html
При компиляции даже такого проекта в Eclipse идет ошибка. Текст ошибки: Building target: Proj Invoking: GCC C++ Linker g++ -o"Proj" ./Proj.o ...
C++ Заполнение массива вещественными числами с двумя знаками после запятой Здравствуйте! Я только начала работать в С++ и не знаю как заполнить одномерный массив из 10 элементов вещественными числами в диапазоне от 1 до 10 с двумя знаками после запятой. Проблема именно в... http://www.cyberforum.ru/cpp-beginners/thread160955.html
C++ Включение поддержки UNICODE в программе
Помогите пожалуйста с такой проблемой: я написал программу используя просто main(). В программе у меня есть функции, в которых выполняется функция main(). Захотелось добавит поддержку юникода,...
Бот для браузерной игры C++
Решил написать бота для браузерной игры, и задался вопрос как это сделать, знаю что иногда боты пишут на JavaScript, но я пока учу Си, и не хочу метаться от языка к языку программирования. Слышал что...
C++ Не определяется функция _atold http://www.cyberforum.ru/cpp-beginners/thread160887.html
Почитал про данный метод. На сколько я понял, он может привести массив char к типу double. Так же, указано, что он принадлежит к stdlib.h или к math.h Только вот в моем случае, при подключении...
C++ Текст в CodeBlocks Здравствуйте. При компиляции программы в CodeBlocks выскакивают ошибки: DEVCAPS1.cpp:53: undefined reference to `GetStockObject@4' DEVCAPS1.cpp:95: undefined reference to `GetTextMetricsA@8'... подробнее

Показать сообщение отдельно
odip
Эксперт С++
7158 / 3220 / 59
Регистрация: 17.06.2009
Сообщений: 14,164
23.08.2010, 12:16
Тут не только разработчики компиляторов - свои ограничения еще накладывает операционная система.

Что касается знать все и сразу досконально - это вряд ли получится.
Нужно постепенно углубляться в предмет изучения.

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

Скажем, когда создается переменная, она сохраняется в стеке
Не совсем так - например глобальная переменная не сохраняется в стеке.

почему, скажем, мы в стеке не можем хранить объекты
Можем хранить.
Но стек не резиновый - объект может быть большой и просто не влезет в стек.
Поэтому C++ рекомендует объект хранить в куче, а в стеке получается что будет храниться переменная - указатель на объект.
Стек имеет ограниченный размер - например 16Mb.

можем ли мы объекты создавать где угодно в любом месте памяти а не только в куче
Теоретически да.
Но практически распределение памяти скорее всего такое, что свободная доступная приложения память находится только в куче.
При этом если в куче мало места, то программа попросит ОС расширить ей область памяти занятую под кучу. Но это расширение тоже не бесконечно. Под Windows скорее всего получиться выделить не более 2Gb памяти в 32-битном режиме.
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru