回答:
追加する必要があります:
#include <stdlib.h>
このファイルには、組み込み関数の宣言が含まれていますmalloc
。そうしないと、コンパイラーは名前を付けた独自の関数を定義したいと考え、malloc
次の理由で警告を出します。
int
、これは組み込み関数と互換性がありませんin malloc
はaを受け取り、a size_t
を返しますvoid*
。ヘルプで関数を調べる習慣をつけてください。
Cのほとんどのヘルプは、UNIXのマニュアルページでモデル化されています。
使用:
man malloc
かなり有用な結果が得られます。
グーグル man malloc
、私が何を言っているかがます。
UNIXでは、関連するものについても適切です。
#include <stdlib.h>
概要の行がプログラムに記述しなければならないことを既に知っている場合にのみ。
他の非常に良い答えに加えて、少しひっくり返して、他の答えでまだ議論されていないことをカバーしたいと思います。
Linuxの場合malloc()
、コードで使用するには、
実際に行う必要はあり ません#include <stdlib.h>
。
(ただし、 stdlib.h
は非常に一般的ですが、多種多様な便利なC標準ライブラリ関数およびマクロを提供するため、おそらくすべての非おもちゃプログラムにはどちらの方法でも含める必要があります)
#include <malloc.h>
代わりにすることもできます。
ただし、の使用malloc.h
は推奨されておらず、コードを移植できなくなることに注意してください。使用したいmalloc()
場合は、常に使用する必要があります(明示的に理由がある場合を除いて)#include <stdlib.h>
。
の理由は、この質問に対する回答で最もよく説明されています。