在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
的结构体,包含两个整数成员x
和y
。然后,我们创建了一个Point
类型的数组points
,并用三个点初始化它。在main
函数中,我们遍历数组并打印每个点的坐标。
struct
数组的内存布局如下:
+----------+----------+----------+----------+----------+----------+
| points[0]| points[1]| points[2]| | | |
+----------+----------+----------+----------+----------+----------+
points[0]
、points[1]
和points[2]
分别表示数组中的三个元素。每个元素都是一个Point
结构体,包含两个整数成员x
和y
。在内存中,这些结构体连续存储,没有任何填充或间隔。