我目前得到一个“0000005:访问冲突读取位置0xcccccce0”错误和我已经尝试诊断问题...我认为问题出现时,我已定义3的规则来玩,并指向我在这里。C++读访问冲突错误
size_type size() const
{ // return length of sequence
return (this->_Mysize); <---------------------this line
}
我实际上并不确定是否有任何问题,我一直在这里住了几天。
下面是我的三个
ArrayStorage::ArrayStorage(){
myArray = new string[7079];
}
ArrayStorage::~ArrayStorage(){
delete[] _data;
delete[] myArray;
}
ArrayStorage::ArrayStorage(const ArrayStorage &A) {
_size = A.size();
_data = new string [size()];
for (int i = 0; i < size(); ++i)
_data[i] = A[i];
}
ArrayStorage& ArrayStorage::operator=(const ArrayStorage &A){
if (this != &A) {
delete [] _data;
_size = A.size();
_data = new string [A.size()];
for (int i = 0; i < size(); ++i) {
_data[i] = A[i];
}
}
return *this;
}
const string& ArrayStorage::operator[](int i) const{
assert((i >= 0) && (i < size()));
return _data[i];
}
string& ArrayStorage::operator[](int i){
assert((i >= 0) && (i < size()));
return _data[i];
}
回溯跟踪将是有益的在这里 – daramarak 2012-04-10 09:27:53
是否检查'this'是有效的?你有没有从调试器回溯(你没有在调试器中检查应用程序?)?你为什么试图实现你自己的“数组”,而不是使用任何像std :: vector这样的标准容器? – 2012-04-10 09:31:37
我猜想这是一个指针问题,但如果没有堆栈跟踪/回溯就无法判断。某处你在一个地址上调用size()的地方,你认为有一个ArrayStorage,但没有。由于它是0xccccce0我会去与一个单位化的指针。 – dutt 2012-04-10 09:31:50