指针的访问冲突写入位置?

时间:2014-02-18 18:18:31

标签: class pointers struct complex-numbers

这是我的CArray.h:

struct CComplexNumber
{
    int rpart, ipart;
};

class CArray
{
protected:
    CComplexNumber* a;
    int size;
public:
    CArray* next;
    void updateElement(int rp, int ip);
};

我的CArray.cpp:

#include <iostream>
using namespace std;
#include "CArray.h"

void CArray::updateElement(int rp, int ip)
{
    a->rpart = rp;
    a->ipart = ip;
}

这是main.cpp中的一行

CArray* first = new CArray();
CArray* cur = first;
cur->updateElement(1,2); //=> Here is the line that causes the bug

当我调试时,cmd已经崩溃了。我必须退出并调试每一行。当我到达上面一行时,编译器停止并显示:

  

Section03.exe中0x00b1155b处的未处理异常:0xC0000005:   访问冲突写入位置0x00000000。

请修复我的代码并解释为什么我不能用rp替换rpart?

0 个答案:

没有答案