это:
char* tmp_ = (char*) operator new[](WORDSIZE + SIZE * sizeof(int));
int* p_arr_ = (int*)(tmp_ + WORDSIZE);
*(size_t*)tmp_ = SIZE;
for (size_t i = 0; i < SIZE; i++)
{
new(p_arr_ + i) int();
}
Вопрос таков: Правильно ли это? Если да, то почему сначала держут адрес на выделенную память в char*, а не сразу в int* ?
Потому что char* смещается побайтно
так если написать сначала int*, а в 2 строке убрать каст к int*, то ничего не поменяться
Вычисли мне p_arr_ при tmp_ типа int*
Обсуждают сегодня