如何从int **快速获取一维int数组?

时间:2012-01-13 01:56:14

标签: c++ multidimensional-array memory-management

我想从我的double int指针获取一维数组。指针的内存分配如下:

listOfTxtsContents = new int *[ROWS];
for( int i = 0 ; i < ROWS ; i++ )
{
    listOfTxtsContents[i] = new int[COLUMNS];
    for(int j = 0; j < COLUMNS; ++j)
        listOfTxtsContents[i][j] = 0;
}

然后每一行都包含一些数据,我希望以这种方式将它放在数组中,以便1D数组将用连续的行填充。

2 个答案:

答案 0 :(得分:2)

非常确定这样的事情应该有效:

array[ROWS * COLUMNS];
for(size_t i = 0; i < ROWS; ++i)
  memcpy(array + i * COLUMNS, listOfTxtsContents[i], COLUMNS * sizeof(int));

答案 1 :(得分:2)

分配一个大小为ROWS * COLUMNS的一维数组;将每个listOfTxtsContents [i] [j]分配给元素i * COLUMNS + j。