我在OpenCV中使用了CvPoint结构,需要为该结构的xy字段分配一个值。

这是我的代码:

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 [] 的匹配调用配对(如果是数组)。

08-19 11:34