如何将对象数组存储在内存中?

Ter*_* Li 1 c++ memory arrays memory-management

我知道为数组分配了一个连续的内存块.

我的第一个问题是当数组元素是一个对象而不是内置类型时,什么存储在为数组保留的连续内存中?对象的指针或对象的实际数据?我的猜测是指针存储在数组中,实际的对象随机存储在堆中.我对么?

我的第二个问题是现在我们想要为一个对象数组保留一个指定的内存(例如,共享内存).实现这一目标的最佳方法是什么?我应该逐个序列化指定内存中的实际对象并使用相对指针(例如索引)来访问它们中的每一个吗?

Ker*_* SB 5

一点也不对.数组T[N]包含直接存储在连续内存中N的类型元素T.该阵列占用N * sizeof(T)内存字节.

相反,为了回答你的第二个问题,任何N * sizeof(T)内存字节的运行都可以用来保存N类型的元素T(可能受某些对齐约束).