我目前得到一個「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