二维阵列指针语法 - C.

时间:2014-04-06 20:53:40

标签: c arrays pointers

我是C的新手,我们的教授给了我们一个性能任务,我们必须操作一些2d数组。我试图找出如何在两个数组之间正确移动值。我相信使用*(array * i + j)可能有助于加快速度,但我无法编译。我知道array [i] [j]通常是可以接受的,但我需要让它尽可能快。问题行看起来像

out[x] = *( *(in+i) + j);

我得到的错误是“从int类型分配到int [10000]类型时不兼容的类型。 我应该为外出和指示吗?我不允许更改

的实现
define N 10000

/* The input matrix */

long in[N][N];

/* The output matrix */
long out[N][N];

我确信答案显而易见,但我的改变都没有奏效。我只想在out [x]或out + x处更改值。

1 个答案:

答案 0 :(得分:1)

试试这个

out[column][row] = *( *(in+i) + j);

您忘记索引要分配的数组的第二维。

相关问题