我想用1D数组表示2D数组。函数将传递两个索引(x,y)和要存储的值。这两个标记将代表一维数组的单个元素,并进行相应设置。我知道一维数组需要具有arrayWidth×arrayHeight的大小,但是我不知道如何设置每个元素。

例如,如何区分(2,4,3)与(4,2,3)?我尝试将数组设置为x * y,但是2 * 4和4 * 2会在数组中产生相同的 Blob ,我需要它们有所不同。

最佳答案

您需要确定数组元素是以行顺序还是列顺序存储,然后保持一致。 http://en.wikipedia.org/wiki/Row-major_order

C语言对多维数组使用行顺序

要使用一维数组模拟此情况,请将行索引乘以宽度,然后按以下方式添加列索引:

 int array[width * height];

 int SetElement(int row, int col, int value)
 {
    array[width * row + col] = value;
 }

10-06 13:22
查看更多