Chào mừng đến với Diễn đàn lập trình - Cộng đồng lập trình.
Kết quả 1 đến 3 của 3
  1. #1
    Ngày tham gia
    Sep 2015
    Bài viết
    0

    [Help] Chuyển đổi con trỏ bậc 1 sang con trỏ bậc 2.

    Chào các bác !

    Mình đang làm C++.NET và opencv. Trong Form1 có 1 con trỏ bậc 1 khai báo như sau :

    Mã:
    CvCapture *ptrCamera;
    Để tắt được ứng dung thì phải sử dung hàm cvReleaseCapture nhưng tham số truyền hàm lại là con trỏ bậc 2.

    Mã:
    void CvReleaseCapture(CvCapture** cap);
    Mình đã thử truyền như sau nhưng không được, các bác làm qua vấn đề này chỉ giáo giúp mình phát.
    Mã:
    CvReleaseCapture((CvCapture**)ptrCamera); // không báo lỗi nhưng không chạy.
    CvReleaseCapture((CvCapture**)&ptrCamera); // báo lỗi dấu &
    CvReleaseCapture(&ptrCamera); // báo lỗi dấu & ; hàm này trên C++ QT thì chạy OK.
    
    Lỗi : argument of type "interior <CvCapture*> is incompatible with parameter of type "CvCaptrue**".
    Hiện tại mình đang làm theo cách này nhưng nó nhì nhằng:

    Mã:
    CvCapture** p = new CvCapture*[1]; // khai báo 1 con trỏ trung gian;p[0] = ptrCamera; // gán ptrCamera vào con trỏ trung gian.CvReleaseCapture(p); // Truyền con trỏ trung gian vào hàm.

  2. #2
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Tại vì nó ko phải C++ thường [IMG]images/smilies/biggrin.png[/IMG] https://stackoverflow.com/questions/11583851/

    Tức là phải dùng pin_ptr<typename T>.

  3. #3
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Cảm ơn bạn !
    Vật vã nãy giờ [IMG]images/smilies/biggrin.png[/IMG]
    Mà nút Thanks đâu nhỉ

 

 

Quyền viết bài

  • Bạn Không thể gửi Chủ đề mới
  • Bạn Không thể Gửi trả lời
  • Bạn Không thể Gửi file đính kèm
  • Bạn Không thể Sửa bài viết của mình
  •