Réponses:
Vous devez ajouter:
#include <stdlib.h>
Ce fichier comprend la déclaration de 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:
int
, ce qui n'est pas compatible avec le in malloc
, qui prend a size_t
et renvoie a void*
).Prenez l'habitude de rechercher de l'aide dans vos fonctions.
La plupart de l'aide pour C est calquée sur les pages de manuel Unix.
En utilisant :
man malloc
donne des résultats assez utiles.
Googler man malloc
vous montrera ce que je veux dire.
Dans unix, vous obtenez également des points à propos des éléments liés.
#include <stdlib.h>
dans le synopsis signifie que vous devez écrire cela dans votre programme.
À côté des autres très bonnes réponses, je voudrais faire un petit pinaillage et couvrir quelque chose qui n'est pas encore discuté dans les autres réponses.
Lorsque vous êtes sous Linux, à utiliser malloc()
dans votre code,
Vous n'êtes pas obligé de le faire #include <stdlib.h>
.
(Bien que l'utilisation de stdlib.h
soit très courante et que chaque programme non-jouet devrait probablement l'inclure de toute façon car il fournit un large éventail de fonctions et de macros de bibliothèque standard C utiles)
Vous pourriez aussi à la #include <malloc.h>
place.
Mais veuillez noter que l'utilisation de malloc.h
est obsolète et que votre code n'est pas portable. Si vous souhaitez utiliser, malloc()
vous devriez toujours et toujours (sauf pour des raisons explicites de faire autrement) #include <stdlib.h>
.
Les raisons pour lesquelles , sont mieux expliquées dans les réponses à cette question: