2014-09-28 62 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