使用指针指定节点的初始化(C++)

designated Initialization of a Node with a pointer (C++)

在链表中创建新节点时,如下所述使用指定初始化器初始化节点成员是否合法? 这样做有什么影响吗?什么是实现相同结果的更好方法? (语言:C++)

Node *temp = new Node{.data = value, .next = NULL};
struct Node
{
    int data;
    Node *next;
};

我认为你可以使用函数作为构造函数。

Node* newFunction(int data) { 
  Node* newNode = malloc(sizeof(Node));
  newNode->data=data;
  newNode->next=NULL;
  return newNode;
}

之后就可以在主体部分使用了;

Node* newNode = newFunction(5);