【发布时间】:2010-09-29 03:21:19
【问题描述】:
C++中对象是如何存储在内存中的?
对于普通类如
class Object
{
public:
int i1;
int i2;
char i3;
int i4;
private:
};
使用Object的指针作为数组可以访问i1如下?
((Object*)&myObject)[0] === i1?
关于 SO 的其他问题似乎表明将结构转换为指针将指向 POD 类型的第一个成员。如果有构造函数的类,这有什么不同? 另外对于非 POD 类型有什么不同?
编辑:
因此,在内存中,上面的类会像下面这样排列吗?
[i1 - 4bytes][i2 - 4bytes][i3 - 1byte][padding - 3bytes][i4 - 4bytes]
【问题讨论】:
-
您可能对填充是正确的,只要 int 是 4 字节宽,char 是 1 字节宽。
标签: c++ memory memory-management