2014-09-28 61 views
-1

我正在製作一個能夠找到多邊形區域的程序。頂點的數量改變。我創建了一個使用包含點的數組的結構。繼承人該零件的代碼:結構內的C++數組

public: 

int vertices; 
struct triangleStruct{ 

    int verts[vertices][vertices]; 
}; 

這給出一個錯誤「無效使用非靜態數據成員三角:: verticies的」這是一類被稱爲三角形內。爲什麼?!?!

+0

'結構'必須在編譯時固定大小。 – 2014-09-28 03:19:38

+0

讓我解釋更多:類構造是三角形(整數),它設置頂點的數量。這樣做的函數設置歸因於頂點變量的值。 – user3688499 2014-09-28 03:28:54

+0

但是對於那個數據結構,編譯器需要給定一個固定的大小。你需要動態分配你想要做的事情。也許看看'std :: vector'? – Galik 2014-09-28 03:32:59

回答

1

要聲明的陣列,指定元素的類型以及由陣列所需元件的數目如下:

type arrayName [ rows][ cols ]; 

rowscols必須是恆定的大於零的整數。 在編譯時應該可用的數組大小,但在你的情況下,你正試圖提供動態大小來分配數組,這就是爲什麼這個錯誤發生。爲此我建議使用vectors