我如何使这两个变量点在c++中的同一点?



我正在处理一个对象数组,其中一些对象应该具有相同的字面参数,所以当它改变时,它也会改变所有对象。

我尝试使用指针,这样每个参数都指向相同的内存,但我真的不知道怎么做。在我的代码中发生了一些事情,因为它编译了,但是当我改变了应该立即改变的变量时,它单独改变了,我可以手动改变它,但我不认为这是最佳的方法。

交货:这一行是用来创建对象的,我给它两个节点和一个section的内存方向,

elementos[i].Set_elemento(&nodos[numero_nodoi-1],&nodos[numero_nodoj-1],&secciones[numero_seccion-1]);

在这里,我应该做的事情,但它没有做任何事情

void Set_elemento(Nodo *nodo_i, Nodo *nodo_j, Seccion *seccion_){
Nodo*p1=NULL;
p1=&nodoi;
p1=nodo_i;
Nodo*p2=NULL;
p2=&nodoj;
p2=nodo_j;
Seccion*j=NULL;
j=&seccion;
j=seccion_;
}
谢谢你的帮助,很抱歉我不会说英语。

要解引用指针,在指针之前使用*

void Set_elemento(Nodo* nodo_i, Nodo* nodo_j, Seccion* seccion_) {
nodoi = *nodo_i;
nodoj = *nodo_j;
seccion = *seccion_;
}

获取指针地址处的对象,并为其设置成员变量。

虽然我认为你实现你想做的事情的整个方法是错误的.

让每个节点存储整个节点并复制它是非常非常…非常愚蠢的。相反,您应该存储地址并分配指针。因此,将nodoi,nodoj,seccion成员变量更改为指针,您不需要取消引用任何内容。

那么你可以只复制地址(只有8字节)而不是解引用/复制整个对象,并且必须以某种方式跟踪所有节点的所有内容:

Nodo* nodoi, nodoj;
Seccion* seccion;
void Set_elemento(Nodo* nodo_i, Nodo* nodo_j, Seccion* seccion_) {
nodoi = nodo_i;
nodoj = nodo_j;
seccion = seccion_;
}

相关内容

最新更新