我在OpenCV中使用了CvPoint
结构,需要为该结构的x
和y
字段分配一个值。
这是我的代码:
CvPoint* P1;
P2[0].x=32;
但是程序在尝试设置该值时始终会阻塞。
关于如何设置这些值的任何想法?
最佳答案
首先,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;
由于在两个示例中都使用了new运算符,因此必须将它们与 delete 或 delete [] 的匹配调用配对(如果是数组)。