使用指针指定节点的初始化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);