Pourquoi est-ce que je reçois un avertissement chaque fois que j’utilise malloc?

Si j’utilise malloc dans mon code:

 int *x = malloc(sizeof(int)); 

Je reçois cet avertissement de gcc :

 new.c:7: warning: implicit declaration of function 'malloc' new.c:7: warning: incompatible implicit declaration of built-in function 'malloc' 

Vous devez append:

 #include  

Ce fichier inclut la déclaration pour la fonction intégrée malloc . Si vous ne le faites pas, le compilateur pense que vous voulez définir votre propre fonction nommée malloc et il vous avertit car:

  1. Vous ne le déclarez pas explicitement et
  2. Il y a déjà une fonction intégrée par ce nom qui a une signature différente de celle qui a été implicitement déclarée (lorsqu’une fonction est déclarée implicitement, ses types de retour et d’argument sont supposés être int , ce qui n’est pas compatible avec le construit). -in malloc , qui prend un size_t et retourne un void* ).

Vous n’avez pas fait #include .

Vous devez inclure le fichier d’en-tête qui déclare la fonction, par exemple:

 #include  

Si vous n’incluez pas ce fichier d’en-tête, la fonction n’est pas connue du compilateur. Donc, il le voit comme non déclaré.

prendre l’habitude de regarder vos fonctions dans l’aide.

la plupart des aides pour C sont modélisées sur les pages de manuel unix.

homme malloc

donne des résultats assez utiles.

googling man malloc va vous montrer ce que je veux dire.

bien sûr, dans Unix, vous obtenez également des propositions pour des choses qui sont liées.