C 在堆栈上对对象(节点)做出一系列指针

C++ Making an array of pointers to objects(nodes) on Stack

本文关键字:一系列 指针 节点 堆栈 对象      更新时间:2023-10-16

我试图将((添加到我的节点中,我注意到当我尝试在_nodes阵列上访问"节点"时,它没有保留构造的值,例如喜欢ID。它应该是1,并且正在打印4198441。这是初始化数组的正确方法,以便它的每个位置都指向一个特定的节点?(我不能使用"新"关键字或"列表"answers"向量"库。(

这就是我为节点创建一系列指针的方式。数组的每个位置_nodes [x]都被认为是通往节点的指针。

  //array
  Node* _nodes[];
  //Constructor
  for(int i=0;i<N;i++){
    Node node(i);          //i is the id of the future node.
    _nodes[i] = &node;
  }   

   void addEdge(int a,int b){
    std::cout<<"The id of the node stored in a is:" << _nodes[a]->getId();
    ...
}

此代码属于一个名为Graph的独立类。

_nodes[i] = &node;

此行存储一个指向本地对象的指针。一旦您的功能返回,指针就会在对象被破坏时指向无效的内存位置。

您可以使用_nodes[i] = new Node(i);(并删除本地对象(,但是一旦完成该内存,您就必须管理并删除它。