It's amazing how even the littlest program can cause so much trouble in C.
#include <stdio.h> 
#include <stdlib.h> 
typedef struct node {
    int value;
    struct node *leftChild;
    struct node *rightChild;
} node;
typedef struct tree {
    int numNodes;
    struct node** nodes;
} tree;
tree *initTree() {
    tree* tree = (tree*) malloc(sizeof(tree));
    node *node = (node*) malloc(sizeof(node));
    tree->nodes[0] = node;
    return tree;
}
int main() {
    return 0;
}
The compiler says:
main.c: In function 'initTree':
main.c:17: error: expected expression before ')' token 
main.c:18: error: expected expression before ')' token
Can you please help?
You're using two variables named tree and node, but you also have structs typedefed as tree and node.
Change your variable names:
#include <stdio.h>
#include <stdlib.h>
typedef struct node {
    int value;
    struct node *leftChild;
    struct node *rightChild;
} node;
typedef struct tree {
    int numNodes;
    struct node** nodes;
} tree;
tree *initTree() {
   /* in C code (not C++), don't have to cast malloc's return pointer, it's implicitly converted from void* */
   tree* atree = malloc(sizeof(tree)); /* different names for variables */
   node* anode = malloc(sizeof(node));
   atree->nodes[0] = anode;
   return atree;
}
int main() {
    return 0;
}
                        If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With