这是我的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?