【发布时间】: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