如何创建一个指向多维数组的指针?

问题描述

假设存在一个N维数组:

private void button3_Click(object sender,EventArgs e)
{
    About abt = new About();
    abt.ShowDialog();
}

如何创建指向此的指针?

一个人可以通过获取最低级别的数组的地址,然后获取新创建的指针数组的地址,等等来创建另一个N-1-维指针数组,但这听起来像是一团糟。 type list[S1][S2]...[SN] 可能派上用场,但这也不是一种快速方法。 有什么选项可创建指向整个数组或该数组任何级别的指针?

解决方法

我会自己使用typedef。这里有一个例子:数组数组;

#include <stdio.h>

typedef double arrd_t[2][3][4][5][6][7];
typedef arrd_t arrd_t_t[4][5][6][8][9][10];

arrd_t_t array;
arrd_t_t *ptr = &array;


double ret(arrd_t_t *ptr,size_t x,size_t y,size_t z,size_t a,size_t b,size_t c,size_t x1,size_t y1,size_t z1,size_t a1,size_t b1,size_t c1)
{
    return (*ptr)[x][y][z][a][b][c][x1][y1][z1][a1][b1][c1];
}

https://godbolt.org/z/G4oxsc