c++ - 如何从int **中快速获取一维int数组?

标签 c++ multidimensional-array memory-management

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

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;
}

然后每一行都包含一些数据,我想以这种方式将其放入数组中,以便一维数组将填充连续的行。

最佳答案

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

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

关于c++ - 如何从int **中快速获取一维int数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8844975/

相关文章:

c++ - 遍历二维 vector

javascript - 在 Javascript 中组合两个或多个数组

php - 数组映射 PHP 多维数组

java - 记录java应用程序的cpu使用情况

c++ - 如何根据模板中的类型有条件地包含一个语句?

c++ - 如何创建一个程序来识别最长的子串回文而不考虑字母大小写

c++ - 使用引用时多态性并不总是有效

php - 使用 For 循环在表中打印多维数组

c - 段错误是在内存修改之前还是之后抛出的?

memory-management - 在 Solaris 上定位错误的内存访问