在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
。在內存中,這些結構體連續存儲,沒有任何填充或間隔。