C ++ - Утечки памяти: где хранится указатель (мета) информация?

Это основной вопрос, на который я не могу найти ответа.

При следующем коде произойдет утечка памяти:

   int main(){
          A* a = new A();
          // 1
     } 
     //2

Допустим. скажем, что a получил значение 1000. То есть адрес 1000 в куче теперь занят объектом A. На 1 a == 1000 и на 2 a выходит за рамки. Но некоторая информация отсутствует.

В реальной жизни адрес 1000 - это адрес байта в памяти. Этот байт не содержит информации о том, что он хранит ценную информацию.

Мои вопросы:

  1. кто хранит эту информацию?

  2. как хранится эта информация?

  3. какой компонент «знает», откуда и куда указывает указатель a ? Как компьютер может узнать, что a указывает на sizeof (A) байтов?

Спасибо!

8
задан midor 11 February 2017 в 15:34
поделиться