o que é a sintaxe “struct * struct newStruct (int somedata) {}” em c ++ [duplicado]

Nov 16 2020

Eu estava tentando fazer uma árvore em c ++ e me deparei com esse código que está me confundindo muito.

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;
}

o que é struct node*? Algum tipo de estrutura, mas um ponteiro? Também não deveria haver structs ;no final? Por exemplo, nodetem ;no final do corpo, mas não node*?

Respostas

1 nvjsingh Nov 16 2020 at 03:43

struct node*é o tipo de retorno da função newNode()e não uma definição em si. A linha à qual você está se referindo é a assinatura da função newNode. Ele é seguido pela definição da função entre as duas chaves {}. Uma definição de função não precisa de um ;no final.