У меня перегружен оператор new [] вот так
void * human::operator new[] (unsigned long int count){
cout << " calling new for array with size = " << count << endl ;
void * temp = malloc(count) ;
return temp ;
}
и теперь звонит
human * h = new human[14] ;
скажем sizeof(human) = 16
, но при этом будет напечатано 232, что составляет 14 * 16 + sizeof (int *) = 224 + 8
Почему выделяется это дополнительное пространство? И куда он попадает в память?
Потому что, когда я печатаю *h
ИЛИ h[0]
, я получаю те же результаты, поэтому его нет в начале фрагмента памяти. Правильно ли это вообще ИЛИ мне здесь чего-то не хватает?