mallocを使用するたびに警告が表示されるのはなぜですか?
質問
コードでmalloc
を使用する場合:
int *x = malloc(sizeof(int));
gcc
からこの警告が表示されます:
new.c:7: warning: implicit declaration of function ‘malloc’
new.c:7: warning: incompatible implicit declaration of built-in function ‘malloc’
解決
追加する必要があります:
#include <stdlib.h>
このファイルには、組み込み関数malloc
の宣言が含まれています。そうしないと、コンパイラはint
という名前の独自の関数を定義する必要があると判断し、次の理由で警告が表示されます。
- 明示的に宣言しないでくださいおよび
- 暗黙的に宣言されたものとは異なるシグネチャを持つ、その名前の組み込み関数が既に存在します(関数が暗黙的に宣言された場合、その戻り値と引数の型は
size_t
であると想定されます。組み込みのvoid*
と互換性があり、<=>を取り、<=>)を返します。
他のヒント
まだ完了していません#include <stdlib.h>
。
たとえば、関数を宣言するヘッダーファイルを含める必要があります。
#include <stdlib.h>
このヘッダーファイルを含めない場合、関数はコンパイラーに認識されません。そのため、それは宣言されていないと見なされます。
ヘルプで関数を調べる習慣をつけます。
Cのほとんどのヘルプは、UNIXのマニュアルページでモデル化されています。
man malloc
非常に有用な結果が得られます。
googling man mallocは、私の意味を示します。
もちろん、Unixでは、関連するものに対する提案も得られます。
所属していません StackOverflow