C++ 将二维阵列转换为用于绘制线的一维阵列

C++ 将二维阵列转换为用于绘制线的一维阵列,c++,visual-studio-2010,directx,directx-9,C++,Visual Studio 2010,Directx,Directx 9,由于LPD3DXLINE只接受1D,我将2d数组转换为1D数组。因此,我可以在屏幕上保留绘制的线,并绘制另一条新的线 D3DXVECTOR2 lineVertices[newLine][currentLine] for (int i=0; i < noOfNewLine; i++) line->Draw(lineVertices[i], 2, D3DCOLOR_XRGB(0, 0, 0)); 我该如何处理这些问题 lineVertices[i] 要成功地将其转换为一维阵

由于LPD3DXLINE只接受1D,我将2d数组转换为1D数组。因此,我可以在屏幕上保留绘制的线,并绘制另一条新的线

D3DXVECTOR2 lineVertices[newLine][currentLine]

for (int i=0; i < noOfNewLine; i++)
    line->Draw(lineVertices[i], 2, D3DCOLOR_XRGB(0, 0, 0));
我该如何处理这些问题

lineVertices[i]

要成功地将其转换为一维阵列?

为什么需要在一维中转换二维?C\C++中的任何数组都作为1d allready存储在内存中。 只需将第一个元素的地址分配给指针

p = &lineVectices[0][0];
其中
p
是指向数组类型的指针。 然后在
p

for (int i=0; i<newLine*currentLine; i++){
// do stuff with p[i]
}

for(int i=0;iError 1错误C2440:“正在初始化”:无法从“D3DXVECTOR2(*)[2]”转换为“D3DXVECTOR2*”@optimizez抱歉,编辑了我的答案,应该是
p=&lineVectices[0][0]
for (int i=0; i<newLine*currentLine; i++){
// do stuff with p[i]
}