2 lxheqiao lxheqiao 于 2014.11.11 10:23 提问

C++ 程序报错 Access violation reading location 0xcdcdcdcf.

#include
#include
using namespace std;

class Record
{
public:
Record();
bool getvacant();
private:
bool vacant;
};

Record::Record()
{
vacant = true;
}

bool Record::getvacant()
{
return vacant;
}

class RecordManager
{
public:
RecordManager();
~RecordManager();
bool find();
private:
Record * pRecordArr;
};

RecordManager::RecordManager()
{
Record *pRecordArr = new Record[4];

}
RecordManager::~RecordManager()
{
delete [] pRecordArr;
}
bool RecordManager::find()
{
bool i;
i = pRecordArr[2].getvacant();
return i;
}

int main()
{
RecordManager *pR = new RecordManager;

pR->find();
return 0;
}

2个回答

lx624909677
lx624909677   Ds   Rxr 2014.11.18 15:08

构造函数那里写错了,应该是
RecordManager::RecordManager()
{
pRecordArr = new Record[4];
}
如果按你之前写的,你开辟空间的对象并不是类的成员对象,所以下次用的时候没有空间自然就蹦啦!

lx624909677
lx624909677   Ds   Rxr 2014.11.18 15:08

构造函数那里写错了,应该是
RecordManager::RecordManager()
{
pRecordArr = new Record[4];
}
如果按你之前写的,你开辟空间的对象并不是类的成员对象,所以下次用的时候没有空间自然就蹦啦!

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!