【问题标题】:Question About Dynamically Allocated Objects关于动态分配对象的问题
【发布时间】:2019-02-09 20:59:13
【问题描述】:

我是一个初学者,很难理解如何动态分配一个对象,然后将另一个动态分配的对象的内存地址传递给第一个对象的成员。

给定一个包含整数的结构和指向另一个相同类型结构的指针,如下所示:

struct Node {
    int data;
    Node *next_ptr; 
};

会:

Node *node1 = new Node(); 
Node *node2 = new Node();

Node类型的对象分配内存还是只创建指向node1对象的指针?

node1->next_ptr = node2 可以解决吗?

【问题讨论】:

  • 是的,看起来是正确的。为什么你认为有问题?
  • new 总是(如果可能)在堆上创建一个对象并返回一个指向该对象的指针,您可以通过它使用它。指针本身通常在堆栈上创建(即没有new)。 node1->next_ptr = node2 会做你期望的事情 - node1 中的指针现在将指向与 node2 指针相同的对象。

标签: c++ object pointers syntax


【解决方案1】:

您好,欢迎来到社区!

您的代码没问题。运算符 new 将在内存中创建一个对象,并返回该对象的指针。

node1->next_ptr = node2 将“连接”node1 和 node2。或者 node1.next_ptr 将是像 node2 这样的对象的指针。
您应该查看链表教程。随意问...

【讨论】:

    猜你喜欢
    • 2011-03-24
    • 1970-01-01
    • 2022-12-05
    • 1970-01-01
    • 2022-01-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多