не пойму, что приводит к варнингу в этом коде
#include <stdio.h>
static int arr[][2][2] = {
    {
        { 0, 0 },
        { 1, 1 }
    },
    {
        { 1, 1 },
        { 2, 2 }
    },
    {
        { 2, 2 },
        { 3, 3 }
    },
};
void foo(const int (*m)[2])
{
}
int main()
{
    foo(arr[0]);
    return 0;
}
main.c:42: warning: passing argument 1 of ‘foo’ from incompatible pointer type
main.c:36: note: expected ‘const int (*)[2]’ but argument is of type ‘int (*)[2]’




