cos'è la sintassi "struct * struct newStruct (int somedata) {}" in c ++ [duplicato]

Nov 16 2020

Stavo cercando di creare un albero in c ++ e mi sono imbattuto in questo codice che mi confonde davvero.

struct node
{
    int data;
    struct node* left;
    struct node* right;
};

// The code bellow this is the part i dont understand
struct node* newNode(int idata)
{
    node* node = new struct node;
    node->data = idata;
    node->left = NULL;
    node->right = NULL;
    return node;
}

che cos'è struct node*? Una sorta di struttura, ma un puntatore? Inoltre, le strutture non dovrebbero avere ;alla fine? Ad esempio, nodeha ;alla fine del corpo ma non node*?

Risposte

1 nvjsingh Nov 16 2020 at 03:43

struct node*è il tipo restituito della funzione newNode()e non una definizione in sé. La linea a cui ti riferisci è la firma della funzione newNode. È seguito dalla definizione della funzione tra le due parentesi graffe {}. Una definizione di funzione non ha bisogno di una ;alla fine.