Мне кажется, что так работает память в C ++:
Если вы используете new
, то вы просите реализацию компилятора дать вам немного памяти (любой памяти) из кучи.
Если вы используете новый синтаксис размещения, вы просите перераспределить определенную область памяти, адрес которой вы уже знаете (давайте просто предположим, что это также из кучи), которая, вероятно, также была первоначально выделена из new
оператор в какой-то момент.
Мой вопрос такой:
Есть ли способ узнать, какие области памяти доступны вашей программе a priori (т.е. без перераспределения памяти из кучи, уже предоставленной вам оператором new
)?
Является ли память в куче смежной? Если да, то можете ли вы узнать, где это начинается и где заканчивается?
p.s. Просто пытаюсь максимально приблизиться к металлу как можно быстрее ...