2009-08-04 4 views

答えて

203

あなたが追加する必要があります。そうしない場合、コンパイラはあなたがmallocという名前の独自の関数を定義したいと考えてやので、それはあなたに警告します:あなたが明示的に

  • あり、すでに構築されていることを宣言しない

    1. 関数が暗黙的に宣言されている場合、その戻り値および引数の型はintと仮定されています。これは組み込みのmallocと互換性がありません。 size_tを受け取り、void*を返します)。
  • +23

    +1実際のメッセージの説明 –

    +5

    用語ニット:Cの組み込み関数のようなものはありません。mallocは、単に標準Cライブラリの関数です。 – Jens

    +4

    @Jens標準ライブラリ関数を組み込み関数と呼ぶことには問題がありません。また、gccの人々は、エラーメッセージが "組み込み"という言葉を使用しているので、明らかにgccの人もそうではありません。 – sepp2k

    28

    の互換性がない暗黙的な宣言。

    15

    あなたは、たとえば、関数を宣言ヘッダーファイルをインクルードする必要があります。

    #include <stdlib.h> 
    

    あなたはこのヘッダファイル、関数はコンパイラに知られていないが含まれていない場合。だから、それは宣言されていないと見なされます。

    #include <stdlib.h> 
    

    このファイルには、組み込み関数mallocの宣言が含まれています

    10

    あなたの機能を援助してみる習慣をつくってください。

    Cのほとんどのヘルプは、unixのマニュアルページをモデルにしています。

    男性malloc

    は非常に有用な結果を示します。

    グーグル・マンmallocが私の言いたいことをあなたに示します。

    もちろんUNIXでも、関連するものを見つけることができます。

    +1

    概要で '#include 'という行があなたのプログラムに書かなければならないことを既に知っている場合のみです。 –

    +1

    誰かがここで他の答えを読んだら、今それを知るようになります。 – MikeKulls

    関連する問題