2013-06-20 101 views
0

由於LPD3DXLINE只接受1D,我將2d數組轉換爲1d數組。所以,我可以在畫面上畫出線條並畫出另一條線。將2d數組轉換爲1d數組用於繪製線

D3DXVECTOR2 lineVertices[newLine][currentLine] 

for (int i=0; i < noOfNewLine; i++) 
    line->Draw(lineVertices[i], 2, D3DCOLOR_XRGB(0, 0, 0)); 

如果我改變

D3DXVECTOR2 lineVertices[currentLine][newLine] 

我應該怎樣做

lineVertices[i] 

將其轉換成一維數組成功?

回答

1

爲什麼需要在1d中轉換2d? C \ C++中的任何數組都以1d的形式存儲在內存中。 恰在第一次elemnt的ADRESS分配給指針

p = &lineVectices[0][0]; 

其中p是指向你的數組類型。 ,然後跨過p

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

錯誤錯誤C2440遍歷: '初始化':無法從 'D3DXVECTOR2(*)[2]' 轉換 'D3DXVECTOR2 *' – zzz

+0

@optimisez對不起,編輯我的答案,它應該是'p =&lineVectices [0] [0]' –