我将自定义数据结构存储在列表中,每个都指向它的父级。
这是数据结构
struct block{
int someVal;
block * parent = 0;
}
我需要用“块”填充列表,每个人都需要指向其父级,我初始化如下:
block Q;
std::vector<block> something; // assume this is filled with 4 blocks
我初始化列表中的第一个对象,让父指向自身(识别最后一个元素的简单方法)
something[0].parent = &something[0];
至于设定其他人,这是我的逻辑:
for(int i = 1; i < 3; i++){
something[i].parent = &Q;
Q = something[i];
}
现在,这看起来应该产生类似的东西:
something[0].parent = #address of itself
something[1].parent = #address of 0
something[2].parent = #address of 1
something[3].parent = #address of 2
但实际上它将所有内容分配给某些事物的内存位置[0]
为什么会发生这种情况?