获取地址在数组2d中的位置
本文关键字:位置 2d 数组 地址 获取 | 更新日期: 2023-09-27 18:17:23
要获取c++
中数组的位置,您可以执行以下操作:
class Slot
{
public:
int Color;
std::string name;
/*.... more properties*/
};
int main()
{
Slot pix[60];
Slot& randomSlot = pix[12];
randomSlot.Color = 12;
randomSlot.name = "sdsd";
Slot* addressOfSlot = &randomSlot;
Slot* arrayStart = pix;
//get the original pos
int x = addressOfSlot - arrayStart;
}
如何获得
2d array
的x和y位置呢?:Slot pix[60][21];
我想使用这种方法,因为我将使用指针/引用,我想有一个快速的方法来获得原始位置,
- 你也可以在c#中使用不安全的代码或类似的东西来做到这一点吗?
您可以通过
将大小为ROWS x COLS
的2D数组映射到大小相同的1D数组,反之亦然array2D[x][y] <-> array1D[x * COLS + y];
,其中COLS
为列数。这使用了在C或c++中数组以技术上称为行主顺序的方式存储的事实。Fortran或MATLAB使用列主顺序,因此索引是调换的。