Недавно я узнал, что целое число занимает 4 байта из памяти.
Сначала запустил этот код и измерил использование памяти:
int main()
{
   int *pointer;
}
 
- Требуется 144 КБ.
 
Затем я изменил код, чтобы выделить 1000 целых переменных.
int main()
{
   int *pointer;
   for (int n=0; n < 1000; n++)
     { 
       pointer = new int ; 
     }
}
 
-   Затем потребовалось (168-144 =) 24 КБ 
, но предполагается, что 1000 целых чисел занимают (4 байта x 1000 =) 3,9 КБ. 
Затем я решил сделать 262,144 целых переменных, которые должны потреблять 1 МБ памяти.
int main()
{
   int *pointer;
   for (int n=0; n < 262144; n++)
     { 
       pointer = new int ; 
     }
}
Удивительно, теперь требуется 8 МБ
 
Использование памяти, экспоненциально растет в соответствии с количеством целых чисел. 
Почему это происходит?
  Я нахожусь на Kubuntu 13.04 (amd64) 
Пожалуйста, дайте мне небольшое объяснение.
Спасибо!
ПРИМЕЧАНИЕ: sizeof(integer) возвращает 4
