mass[size++] = ob;
Этой строкой вы только пишите в память и увеличиваете size на единицу.
Для простоты скажем, что mass имеет содержит адрес 0x0000. Размер object* равен 8 байт (по хорошему, конечно, 32 или 64, но так проще считать). Тогда:
size = 0:
Тогда ob запишется по адресу 0xAAAA0000 + 0x8 * 0, т.е. по 0x0000
size = 1:
Тогда ob запишется по адресу 0xAAAA0000 + 0x8 * 1, т.е. по 0x0008
size = 2:
Тогда ob запишется по адресу 0xAAAA0000 + 0x8 * 2, т.е. по 0x0010
size = 3:
Тогда ob запишется по адресу 0xAAAA0000 + 0x8 * 3, т.е. по 0x0018
size = 4:
Тогда ob запишется по адресу 0xAAAA0000 + 0x8 * 0, т.е. по 0x0020
Общая длинна - 0x28, что соответствует буферу в 40 байт.