当前位置:首页 C++ > 正文

c++中如何计算struct占用的内存?

作者:野牛程序员:2023-12-04 22:09:42 C++阅读 2698

在C++中,可以使用sizeof运算符来计算一个结构体(struct)占用的内存大小。该运算符返回一个对象或类型的字节大小。以下是一个简单的例子:

#include <iostream>

struct MyStruct {
    int a;
    char b;
    double c;
};

int main() {
    std::cout << "Size of MyStruct: " << sizeof(MyStruct) << " bytes" << std::endl;

    return 0;
}

在上述例子中,sizeof(MyStruct)将返回sizeof(int) + sizeof(char) + sizeof(double),即4 + 1 + 8,结果为13字节。请注意,结构体中的成员的内存对齐方式也可能影响结构体的总大小。

如果想查看结构体中每个成员的偏移量,可以使用offsetof宏。例如:

#include <iostream>
#include <cstddef>

struct MyStruct {
    int a;
    char b;
    double c;
};

int main() {
    std::cout << "Offset of a: " << offsetof(MyStruct, a) << " bytes" << std::endl;
    std::cout << "Offset of b: " << offsetof(MyStruct, b) << " bytes" << std::endl;
    std::cout << "Offset of c: " << offsetof(MyStruct, c) << " bytes" << std::endl;

    return 0;
}

上述代码将显示结构体中每个成员的偏移量,以字节为单位。


野牛程序员教少儿编程与信息学奥赛-微信|电话:15892516892
野牛程序员教少儿编程与信息学竞赛-微信|电话:15892516892
相关推荐

最新推荐

热门点击