如何将连续分配的矩阵转换为行分配的矩阵?

时间:2018-08-21 12:24:23

标签: c++ dynamic-memory-allocation

出于各种原因,我必须将一个矩阵作为缓冲区传递给函数,但是之后,我想将该矩阵(作为一个连续的内存块分配)转换为对每一行进行单独分配的矩阵。 这是我目前正在使用的功能。

T** makeRowAllocations(T** matrix, unsigned height, unsigned width) {
    T** a = new T*[height];
    for (size_t i = 0; i < height; ++i) {
        a[i] = new T[width];
        for (size_t j = 0; j < width; ++j)
        {
            a[i][j] = matrix[i][j];
        }
    }
    delete[] matrix[0];
    delete[] matrix;
    return a;
}

我想知道是否有一种更有效的内存处理方式(在内存中同时不保留2个矩阵)。有没有办法从第一个矩阵逐渐释放内存?

0 个答案:

没有答案