Incompatible implicit declaration of built-in function ‘malloc’
CStructMallocC Problem Overview
I'm getting this error:
> warning: incompatible implicit declaration of built-in function ‘malloc’
I am trying to do this:
fileinfo_list* tempList = malloc(sizeof(fileinfo_list));
Just for the reference the struct used at hand is:
typedef struct {
fileinfo** filedata;
size_t nFiles;
size_t size;
size_t fileblock;
} fileinfo_list;
I don't see anything wrong with what I've done. I'm just creating a tempList
with the size of 1 x fileinfo_list
.
C Solutions
Solution 1 - C
You likely forgot to #include <stdlib.h>
Solution 2 - C
You need to #include <stdlib.h>
. Otherwise it's defined as int malloc()
which is incompatible with the built-in type void *malloc(size_t)
.
Solution 3 - C
You're missing #include <stdlib.h>
.
Solution 4 - C
The stdlib.h file contains the header information or prototype of the malloc, calloc, realloc and free functions.
So to avoid this warning in ANSI C, you should include the stdlib header file.
Solution 5 - C
The only solution for such warnings is to include stdlib.h in the program.