我在OpenCV中使用CvPoint
结构,我需要为结构的x
和y
字段分配值。
这是我的代码:
CvPoint* P1;
P2[0].x=32;
但程序在尝试设置值时总是阻塞。
有关如何设置这些值的想法吗?
答案 0 :(得分:4)
首先,P1是指向P1类型对象的指针。要通过指针为对象的成员分配内容,您需要使用 - > 运算符。如果此指针指向数组的开头,则使用运算符[] 来访问单个元素。此运算符返回给定索引的引用,在本例中为 CvPoint& 。
<强> 1。动态分配单个对象
CvPoint* P1 = new CvPoint(); // default construction of an object of type CvPoint
P1->x = 32;
// do something with P1
// clean up
delete P1;
<强> 2。动态分配或数组
CvPoint* points = new CvPoint[2]; // array of two CvPoints
points[0].x = 32; // operator[] returns a reference to the CvPoint at the given index
points[1].x = 32;
// do something with points
// clean up
delete[] points;
由于在两个示例中都使用了新运算符,因此在数组的情况下,必须将它们与对删除或删除[] 的匹配调用配对。
答案 1 :(得分:3)
没有动态方法:
CvPoint P1;
P1.x=32;
P1.y=32;
//////////////
CvPoint P2[2];
P2[0].x=32;
P2[0].y=32;