将数组分配给多维数组,反之亦然

时间:2016-05-14 08:56:02

标签: c++ arrays

如果M = N,我有一个M-by-N多维数组和一个M-times-N大小的一维数组。

for (i = 0; i < M; i++) {
    for (j = 0; j < N; j++) {
        arr2d[i][j] = arrd1d[i * M + j];
    }
}

似乎工作,但我无法解决一般情况。

2 个答案:

答案 0 :(得分:2)

正因为如此,我们可以得到正式答案,您正试图从1d数组中访问超出其范围的元素。将i*M更改为i*N可以解决问题。

答案 1 :(得分:0)

更改

arr2d[i][j] = arrd1d[i * M + j];

arr2d[i][j] = arrd1d[i * N + j];