在C++中,struct
数组的内存布局类似于其他数据类型的数组
以下是一个简单的示例:
#includestruct 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
。在内存中,这些结构体连续存储,没有任何填充或间隔。