BU
Size: a a a
BU
m
void foo(int a[][N]);
N
. В плюсах просто нет типа для плоских многомерных массивов произвольного размера. То что одномерный массив можно индексировать как многомерный, зная его размеры это понятно, но на мой взгляд не делает его многомерным.BU
ПК
void foo(int a[][N]);
N
. В плюсах просто нет типа для плоских многомерных массивов произвольного размера. То что одномерный массив можно индексировать как многомерный, зная его размеры это понятно, но на мой взгляд не делает его многомерным.m
int[N][M]
в int[N*M]
. Я не исключаю этого но мне нужно покопаться в стандарте.if (n==1) { auto array = (int[][1])input; ... }
if (n==2) { ...
m
ПК
int[N][M]
в int[N*M]
. Я не исключаю этого но мне нужно покопаться в стандарте.if (n==1) { auto array = (int[][1])input; ... }
if (n==2) { ...
AS
int[N][M]
в int[N*M]
. Я не исключаю этого но мне нужно покопаться в стандарте.if (n==1) { auto array = (int[][1])input; ... }
if (n==2) { ...
AS
AP
BU
AS
AP
SK
AS
D
m
int(*)[N]
в int*
. Компиляторы требуют reinterpret_cast'а для такого преобразования. На сколько я вижу, такой каст нарушает требование что типы int[N]
и int
являются similar, так как у них отличается n, и как следствие нарушает правила алиасинга.ПК
int(*)[N]
в int*
. Компиляторы требуют reinterpret_cast'а для такого преобразования. На сколько я вижу, такой каст нарушает требование что типы int[N]
и int
являются similar, так как у них отличается n, и как следствие нарушает правила алиасинга.int arr[N];
int* p = arr;
ПК
D
int arr[N];
int* p = arr;
int(&)[N]
-> int*