Я могу представить двумерный массив как заразную последовательность байтов. Мой вопрос в том, может ли он рассматриваться как одномерный массив с явным приведением без вызова неопределенного поведения?Определено ли поведение для обработки 2-мерного массива как одного?
Я проверил следующий код с gcc, и он работал нормально и не разбился. Что говорит об этом стандарт?
int main(void)
{
char buf[2][5];
strcpy((char *)buf, "link 101");
printf("%s\n", (char *)buf);
return 0;
}
Просто говорю, у меня есть все основания думать об этом.
Fyi «У меня есть все основания думать, что это» - эта причина, вероятно, заслуживает упоминания в вашем вопросе. – WhozCraig
Да, это послушно. См. [Одномерный доступ к многомерному массиву: четко определенный C?] (Http://stackoverflow.com/questions/6290956/one-dimensional-access-to-a-multidimensional-array-well-defined-c) , – dxiv
http://stackoverflow.com/questions/27093290/can-an-array-have-trailing-padding – BLUEPIXY