我想爲一個臨時變量分配一個靜態分配的多維數組。請看下面的例子:如何將多維數組分配給臨時變量?
void foo(int b[3][2])
{
b[1][1] = 1; // no segmentation fault
}
int main()
{
int a[3][2] = {{1, 2}, {11, 12}, {21, 22}};
foo(a);
int** c;
c = (int**)&a;
c[1][1] = 1; // segmentation fault on execution
int* d[3];
d[0] = (int*)&(a[0]);
d[1] = (int*)&(a[1]);
d[2] = (int*)&(a[2]);
d[1][1] = 1; // no segmentation fault
return 0;
}
基本上我想要做的編譯器與參數的foo()
b
什麼。但是我能想到的唯一工作解決方案是d
。有沒有更簡單的方法?
奇怪的是,有多少人認爲2D數組直接轉換爲指向指針的指針。 – tenfour