你现在是按行的,方向错了,要用2个循环,按列赋值给数组b,要保证b数组足够大。j<m*n,=越界了。
void fun(int a[][4], int *b, int m, int n)
{
int *p = &a[0][0];
for (int i = 0; i < n; i++) // 列
{
for (int j = 0; j < m; j++) // 行
{
*b = *((p + j * n) + i);
b++;
}
}
}
int *p = (int *)a;
i<=m*n改为 i<m*n