有关二维数组和指针的for循环终止条件

问题遇到的现象和发生背景

//采用函数模板定义一个求二维数组 a[][N]最大值的函数(N 为常量),函数的返回值需是
//二维数组中的最大值,并编写 main 函数调试该函数。

问题相关代码,请勿粘贴截图

int max(int a[][N])
{
int (p)[N]=a;
int m=0;
for(int j=0;
((p+j)+0);j++)
{
for(int i=0;i<N;i++)
{
if(m < ((p+j)+i)){
m=
(*(p+j)+i);
}
}
}
return m;
}

运行结果及报错内容

最大值为1438907

我的解答思路和尝试过的方法

尝试把第一层for循环条件改为j<3,则结果正确

我想要达到的结果