C++读取访问冲突错误

Dor*_*tuh 2 c++

我目前得到一个"0xC0000005:访问冲突读取位置0xcccccce0".错误,我已经尝试过诊断问题...我认为问题出现在我已经定义的3规则发挥作用并指向我这里.

size_type size() const
    {   // return length of sequence
    return (this->_Mysize); <---------------------this line
    }
Run Code Online (Sandbox Code Playgroud)

我实际上不确定是否有任何问题,我已经连续几天都在研究这个问题了.

以下是我的三条规则

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];
}
Run Code Online (Sandbox Code Playgroud)

Nic*_*uet 8

未初始化时,如果使用msvc编译,则堆栈变量将填充0xCC字节.所以0xcccccce0可能是"this"是堆栈上未初始化的指针变量加上对象结构中的_MySize偏移的结果.