c++ - C++ 类的大小是 40 字节而不是 36
问题描述
我的 C++ 类具有字符串和 int 的数据成员。我认为它的大小是 36 字节,但输出显示为 40 字节。有人可以解释一下吗?
#include <iostream>
using namespace std;
class SizeTest {
private:
std::string name;
int i;
};
int main(int argc, char** argv) {
cout<<"sizeof(SizeTest) is : " << sizeof(SizeTest)<<endl;
}
输出:
sizeof(SizeTest) is : 40
解决方案
有人可以解释一下吗?
sizeof
总是返回正确的大小。因此,我们可以推断您对尺寸的期望是错误的。
你没有解释为什么你认为你做了什么,但最有可能的错误原因是没有考虑内存对齐。
我想,字符串是 32 字节
它可以在某些系统上。并非所有系统都如此。
int 是 4 个字节。
它可以在某些系统上。并非所有系统都如此。
所以 sizeof(SizeTest) 应该是 36 字节
不。一个类的大小不是“应该”是其成员大小的总和。
推荐阅读
- javascript - 尝试过滤 JSON
- c# - CreateLinkedTokenSource:如何避免死代码
- reactjs - How to use localStorage with apollo-client and reactjs?
- c - char *a[3] 是什么意思?
- scala - PureConfig:是否可以将文档添加到生成的配置文件中
- ios - AVDRegister - AppleAVDCheckPlatform() 返回 FALSE
- java - 获取新添加页面的 PDfields
- node.js - 文档中的 Mongo db 组
- token - 使用 openzeppelin 部署 SampleCrowdsale - 错误:地址无效
- macos - 运行 hdfs namenode -format 时出现意外的存储路径