質問

コードで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という名前の独自の関数を定義する必要があると判断し、次の理由で警告が表示されます。

  1. 明示的に宣言しないでくださいおよび
  2. 暗黙的に宣言されたものとは異なるシグネチャを持つ、その名前の組み込み関数が既に存在します(関数が暗黙的に宣言された場合、その戻り値と引数の型はsize_tであると想定されます。組み込みのvoid*と互換性があり、<=>を取り、<=>)を返します。

他のヒント

まだ完了していません#include <stdlib.h>

たとえば、関数を宣言するヘッダーファイルを含める必要があります。

#include <stdlib.h>

このヘッダーファイルを含めない場合、関数はコンパイラーに認識されません。そのため、それは宣言されていないと見なされます。

ヘルプで関数を調べる習慣をつけます。

Cのほとんどのヘルプは、UNIXのマニュアルページでモデル化されています。

man malloc

非常に有用な結果が得られます。

googling man mallocは、私の意味を示します。

もちろん、Unixでは、関連するものに対する提案も得られます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top