次のタイプのベクトルを宣言しました。
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;
}