温馨提示×

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

c++
小樊
84
2024-09-10 19:24:27
栏目: 编程语言

在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。在内存中,这些结构体连续存储,没有任何填充或间隔。

0