【发布时间】:2012-01-25 21:48:29
【问题描述】:
我正在做类似的事情:
struct ABC{
int p,q,r;
};
struct X{
ABC *abc;
X(ABC &abc) : abc(&abc) {}
};
std::vector<ABC> vec;
... //populate vec
X x(vec[2]);
当我调试时,x.abc 在赋值后直接看起来是正确的,但不久之后 x.abc 中的数据就是垃圾。这让我觉得指针指向一个局部变量......但是vector::operator[] 返回一个引用,所以这可能吗?
【问题讨论】:
-
更新了一点,希望更清楚。