c++ 自定义类对象内存分配问题?

我想问下c/c++ 在自定义类对象分配内存时。 而类对象成员的内存是如何分配的?例如: class Test{ int i; char c; double d; int *pi; char *pc;struct Test_struct st;//省略 后续函数。......};使用: Test test = new Test(); test.i = 1; int b = 2; test->pi = &b;请问 ,这段代码的内存分配情况。有没有大神知道的指点一二。
2026年09月20日 09:03
有3个网友回答
网友(1):

自动分配。你定义一个int,系统就自动给你分配4个字节,你定义一个类对象,系统就会根据成员变量表自动分配。任何普通类的占据空间大小都是确定的

网友(2):

假设你没有虚函数的话,32位下默认对齐模式一般的实现是最开始4个字节给i,然后1个字节给c,空3个字节,8个字节给d,后面pi和pc分别4个字节。

网友(3):

看 深入探索 C++ 对象模型