
使用指针将二维数组转换为一维数组为什么不成功,结果显示不出来
你现在是按行的,方向错了,要用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++;
}
}
}