我想要一个指向 Pair 元素指针的动态指针数组;
int m_size = 0;
Pair** ar = new Pair*[++m_size];
*ar[0] = Pair(key, data);
在这里我得到:lab3.exe 中 0x013729db 处的未处理异常:0xC0000005:访问冲突写入位置 0xcdcdcdcd。
它发生在 MyString 的重载运算符中(抛出异常时的 HERE 标记):
MyString & MyString::operator = (const MyString & refMyString){
HERE: this->m_pStr = refMyString.m_pStr;
return *this;
}
我的课程(为了我们的目的有点简化):
class Pair{
MyString m_key;
Data* m_data;
}
class MyString
{
char* m_pStr;
}
这是我在调试器中得到的:
好吧,据我所知,当我执行 Pair** ar = new Pair*[++m_size] 时,创建了一个指向 Pair 实例空间指针的新指针。但它只是记忆中的空间。当我尝试操作它时,我失败了。
做什么对我来说是个谜。你可以帮帮我吗?