0

次のタイプのベクトルを宣言しました。

vector<CDFE> vDFE;

ここで、CDFE はクラスであり、変数が含まれていますdouble usage

以下のようにポインターを介してアクセスしています。

pDoc->vDFE.at(i).usage;

変更したくないので、以下のように一時ベクトルを作成していますvDFE

vector<CDFE> tempDFE(pDoc->vDFE);

しかし、プログラムを実行すると、いくつかの機能に移動します_CrtIsValidHeapPointer()

私は何を間違っていますか?

あなたの助けは非常に高く評価されています.

以下はいくつかのコードです:

class CDFE : public CRect
{
    public:
        CDFE();
        virtual ~CDFE();
        double usage;
}


void CRXView::OnDraw(CDC* pDC)
{
    CRXDoc* pDoc = GetDocument();
    vector<CDFE> tempDFE(pDoc->vDFE);
}

CRXDoc* CRXView::GetDocument() const // non-debug version is inline
{
    ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CRXDoc)));
    return (CRXDoc*)m_pDocument;
}
4

2 に答える 2