這是從this answer to a previous question of mine來的。 是否保證編譯器將array[4][4]
與array[16]
相同?鑄造多維和單維陣列
例如,以下任一調用api_func()
是否安全?
void api_func(const double matrix[4][4]);
// ...
{
typedef double Matrix[4][4];
double* array1 = new double[16];
double array2[16];
// ...
api_func(reinterpret_cast<Matrix&>(array1));
api_func(reinterpret_cast<Matrix&>(array2));
}