Wol*_*tan 5 c++ heap memory-management matrix
我正在寻找一种在堆中元素在内存中连续的堆上分配2D(m x n)矩阵的方法。目前,我知道有两种方法可以做到这一点:
int* M = new int[m * n];
Run Code Online (Sandbox Code Playgroud)
M罐头的大小由动态确定。M有点麻烦。(M[i * m + j])typedef int dim[2];
dim* M = new dim[n];
Run Code Online (Sandbox Code Playgroud)
M就是我想要的样子。有没有一种方法可以在堆上动态分配2D矩阵,我可以在其中索引元素,[i][j] 并且内存分配是连续的?
我知道使用一个类对此很有用,但是我特别在寻找一种如上所述的方法。
你可以试试这个
int** M = new int*[m];
int *M_data = new int[m*n];
for(int i=0; i< m; ++i)
{
M[i] = M_data + i * n;
}
Run Code Online (Sandbox Code Playgroud)