我对以下代码有指示的问题,但我不知道它可能是什么原因造成的。我在发布问题之前进行了搜索,我了解到它可能超出了范围,例如对已释放内存位置的引用,但我自己找不到它。感谢你们对我的帮助。
#include<iostream>
#include<string>
using namespace std;
class USR{
private:
string name;
public:
void setName(string name){
this->name = name;
}
string getName(){
return name;
}
};
class A{
private:
USR* * a;
public:
A(int size){
a = new USR*[size];
}
USR* getUser(){
return a[0];
}
};
int main(){
A test = A(5);
USR* u = test.getUser();
(*u).setName("test");
USR* u2 = test.getUser();
cout << (*u2).getName() << endl;
cout << (*u).getName() << endl;
}