【发布时间】:2010-05-14 05:35:05
【问题描述】:
从此代码:
int x = 5;
int other = 10;
vector<int*> v_ptr;
v_ptr.push_back(&x);
v_ptr.push_back(&other);
v_ptr.push_back(&x);
有没有我可以从x 变量本身知道谁指向x,这样我就不必在v_ptr 中搜索x 的地址?这在 C++ 或 C++0x 中是否可行?
我读到,在进行垃圾收集时,他们会查看内存,看看是否有任何东西指向它,然后决定删除未使用的变量等。
【问题讨论】:
-
垃圾收集器这样做的方式是扫描每个活动对象,并为每个对象记录它指向的其他对象。当他们对每个对象都这样做时,他们就可以准确地知道其他对象指向了哪些对象。但他们实际上是在暴力破解它。仅通过查看对象本身无法确定存在哪些指向对象的指针。
标签: c++ garbage-collection pointers