我想从我的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数组将用连续的行填充。
答案 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。