Вы делаете некоторые вещи неправильно. Во-первых, оба типа OCtr
и PCtr
имеют одинаковый тип, который является вектором Test
. Не из Test*
, как предполагает ваш код.
Выражение PCtr.size()*sizeof(Test*)
в основном бессмысленно, потому что вещи, хранящиеся в PCtr, не указатели, а целые объекты. Тем не менее, вы вычисляете размер указателя (который всегда одинаков).
В C ++, как я знаю, нет нормального способа получить общий размер объекта, если он включает динамическое размещение (как это делает вектор). Другими словами, вы делаете правильные вещи для умножения .size()
на sizeof(Test)
, когда у вас есть контейнер объектов, но вам нужно быть более осторожным, когда вы пытаетесь создать контейнер указателей.