struct数组在C++中的内存布局是怎样的

1949idc 2年前 (2024-09-19) 阅读数 313 #编程语言

在C++中,struct数组的内存布局类似于其他数据类型的数组

以下是一个简单的示例:

#include<iostream>

struct Point {
    int x;
    int y;
};

int main() {
    Point points[] = {{1, 2}, {3, 4}, {5, 6}};

    for (int i = 0; i< sizeof(points) / sizeof(Point); ++i) {
        std::cout << "Point " << i + 1 << ": ("<< points[i].x << ", "<< points[i].y << ")\n";
    }

    return 0;
}

在这个示例中,我们定义了一个名为Point的结构体,包含两个整数成员xy。然后,我们创建了一个Point类型的数组points,并用三个点初始化它。在main函数中,我们遍历数组并打印每个点的坐标。

struct数组的内存布局如下:

+----------+----------+----------+----------+----------+----------+
| points[0]| points[1]| points[2]|          |          |          |
+----------+----------+----------+----------+----------+----------+

points[0]points[1]points[2]分别表示数组中的三个元素。每个元素都是一个Point结构体,包含两个整数成员xy。在内存中,这些结构体连续存储,没有任何填充或间隔。

版权声明

本文内容由互联网用户自发贡献,该文观点仅代表作者本人
本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。

© 2010 首途云安 & 厦门硕顿信息技术有限公司 & 闽ICP备11016866号  增值电信业务经营许可证:B1-20203020 地址:福建厦门思明区嘉禾路297号1806
高新技术企业
软件产品证书
计算机软件著作权
ISO认证
国家3A企业