これは、私の以前の質問に対するこの回答から生まれました。コンパイラが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));
}