是否可以将单维数组转换为二维数组?
我第一次尝试这将是非常容易的,只需将2D数组的指针设置为1D数组的开头,如下所示:
int foo[] = {1,2,3,4,5,6};
int bla[2][3] = foo;
Run Code Online (Sandbox Code Playgroud)
因为我可以轻松地创建这样的二维数组:
int bla[2][3] = {1,2,3,4,5,6};
Run Code Online (Sandbox Code Playgroud)
所以现在的问题是,有没有办法通过指针转换它?
你不能初始化一个int bla[2][3]与int*(什么foo在这方面变得).
您可以通过声明指向数组的指针来实现该效果int,
int (*bla)[3] = (int (*)[3])&foo[0];
Run Code Online (Sandbox Code Playgroud)
但要确保尺寸实际匹配,否则会造成严重破坏.