web-dev-qa-db-fra.com

Déclaration implicite incompatible de la fonction intégrée «malloc»

Je reçois cette erreur:

avertissement: déclaration implicite incompatible de la fonction intégrée ‘malloc’

J'essaie de faire ceci:

fileinfo_list* tempList = malloc(sizeof(fileinfo_list));

Juste pour la référence, la structure utilisée est:

typedef struct {
    fileinfo** filedata;
    size_t nFiles;
    size_t size;
    size_t fileblock;
} fileinfo_list;

Je ne vois rien de mal à ce que j'ai fait. Je crée juste un tempList de la taille de 1 x fileinfo_list.

141
SGE

Vous avez probablement oublié d'inclure <stdlib.h>.

314
cnicutar

Vous devez #include <stdlib.h>. Sinon, il est défini comme int malloc(), ce qui est incompatible avec le type intégré void *malloc(size_t).

42
Omri Barel

Il vous manque #include <stdlib.h>.

15
Antti

Le fichier stdlib.h contient les informations d'en-tête ou le prototype des fonctions malloc, calloc, realloc et free.

Pour éviter cet avertissement dans ANSI C, vous devez donc inclure le fichier d’en-tête stdlib.

3
santosh sahu