【发布时间】:2021-02-18 10:14:36
【问题描述】:
在链表中创建新节点时,如下所述使用指定初始化器来初始化节点的成员是否合法? 这样做有什么影响吗?有什么更好的方法来达到同样的结果? (语言:C++)
Node *temp = new Node{.data = value, .next = NULL};
struct Node
{
int data;
Node *next;
};
【问题讨论】:
-
对我来说这看起来像 C++。如果是这样,您应该删除 C 标记并添加 C++ 标记。
-
指定初始化器是 C 标准而不是 C++ 标准。
-
Node *temp = new Node{.data = value, .next = NULL};是 C++,但您标记了C,所以存在矛盾。请澄清。 -
@SameerAhmed 好,然后是edit 问题。不要解释你应该做什么,而是去做。
-
我很困惑,因为你说它是 C++,问题现在被标记为 C++,但你接受了 C 答案。它到底是什么?
标签: linked-list initialization heap-memory c++20 designated-initializer