可能重复:
我可以将二维数组视为连续的一维数组吗?
考虑以下代码:
int array2d[10][10];
int *array1d = array2d[0];
我从未听说过它不起作用的实现,但是array2d
通过访问和操作是否合法array1d
?标准的哪个部分允许这样做?标准中是否有任何内容阻止实现在每个二级数组之间插入额外的空间或填充(不是它需要的,但仍然如此)?
额外的问题:有没有一种array2d
不需要int[100]
areinterpret_cast
或 C 风格的访问方式?