Question

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’
Était-ce utile?

La solution

Vous devez ajouter:

#include <stdlib.h>

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

  1. Vous ne le déclarez pas explicitement et
  2. Ce nom contient déjà une fonction intégrée dont la signature est différente de celle qui a été déclarée implicitement (quand une fonction est déclarée implicitement, ses types de retour et d'argument sont supposés être size_t, ce qui is ' t compatible avec le void* intégré, qui prend un <=> et renvoie un <=>).

Autres conseils

Vous n'avez pas encore terminé #include <stdlib.h>.

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

#include <stdlib.h>

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é.

prenez l'habitude de rechercher vos fonctions dans l'aide.

la plupart de l'aide pour C est modelée sur les pages de manuel unix.

homme malloc

donne des résultats très utiles.

google homme malloc va vous montrer ce que je veux dire.

bien sûr, sous Unix, vous obtenez également un propos pour les choses qui sont liées.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top