저는 OpenCV에서 CvPoint
구조를 사용하고 있습니다.이 구조의 필드에 x
및 y
값을 할당해야합니다.CvPoint의 값을 설정하는 방법
여기 내 코드입니다 :
CvPoint* P1;
P2[0].x=32;
그러나 값을 설정하는 동안 프로그램은 항상 차단합니다.
이 값을 설정하는 방법에 대한 아이디어가 있으십니까?
저는 OpenCV에서 CvPoint
구조를 사용하고 있습니다.이 구조의 필드에 x
및 y
값을 할당해야합니다.CvPoint의 값을 설정하는 방법
여기 내 코드입니다 :
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;
, 그것은 단일 개체의 동적 할당 일치하는 전화 번호가 인 경우 페어링해야합니다. 또는 삭제 []의 경우 배열의.
더 동적 방법으로는 이름의 포인터 변수를 만들었습니다
CvPoint P1;
P1.x=32;
P1.y=32;
//////////////
CvPoint P2[2];
P2[0].x=32;
P2[0].y=32;
는'P1' & 당신은 변수'P2'를 포인터에 값을 할당하려고하지 않습니다? 'cvPoint P1 = cvPoint (32, 32); '와 같은 것을 할 필요가있다. –
질문은 C++로 태그되었으므로 어쨌든'cv :: Point' 객체를 사용하는 것이 더 낫다. Othwerwise 질문을 C로 다시 태그하는 것은 좋은 생각 일 수 있습니다. –