I am pretty new to C.
I am getting this error:
incompatible implicit declaration of built-in function ‘malloc’
Even when I fix the code based on the answers to include <stdlib.h>
, I still get:
two or more data types in declaration specifiers
When trying to do this:
struct tnode { int data; struct tnode * left; struct tnode * right; } struct tnode * talloc(int data){ struct tnode * newTnode; newTnode = (struct tnode *) malloc (sizeof(struct tnode)); newTnode->data = data; newTnode->left = NULL; newTnode->right = NULL; return newTnode; }
How do I fix it?
You have to put ;
behind the struct
declaration:
struct tnode { int data; struct tnode * left; struct tnode * right; }; // <-- here
Your original error was because you were attempting to use malloc
without including stdlib.h
.
Your new error (which really should have been a separate question since you've now invalidated all the other answers to date) is because you're missing a semicolon character at the end of the struct
definition.
This code compiles fine (albeit without a main
):
#include <stdlib.h> struct tnode { int data; struct tnode * left; struct tnode * right; }; struct tnode * talloc(int data){ struct tnode * newTnode; newTnode = (struct tnode *) malloc (sizeof(struct tnode)); newTnode -> data = data; newTnode -> left = NULL; newTnode -> right = NULL; return newTnode; }
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