获取地址在数组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;
}
  1. 如何获得2d array的x和y位置呢?:

    Slot pix[60][21];
    

我想使用这种方法,因为我将使用指针/引用,我想有一个快速的方法来获得原始位置,

  • 你也可以在c#中使用不安全的代码或类似的东西来做到这一点吗?
  • 获取地址在数组2d中的位置

    您可以通过

    将大小为ROWS x COLS的2D数组映射到大小相同的1D数组,反之亦然
    array2D[x][y] <-> array1D[x * COLS + y];
    

    ,其中COLS为列数。这使用了在C或c++中数组以技术上称为行主顺序的方式存储的事实。Fortran或MATLAB使用列主顺序,因此索引是调换的。