27

xcode 5 では、次の警告が表示されます。

「関数 free の暗黙の宣言は c99 では無効です」

関数 free() を使用できない場合、c 構造体を解放するにはどうすればよいですか?

4

2 に答える 2

67

を含める必要があります<stdlib.h>

于 2013-10-16T11:02:02.510 に答える
8

最初に関数を宣言せずに関数を呼び出しているため、その警告が表示されるため、コンパイラは関数について認識していません。

すべての関数は、呼び出す前に宣言する必要があります。C には「組み込み」関数はありません。

標準で定義されている関数であることは事実ですfree()が、まだ組み込みではないため、プロトタイプが必要です。

どのヘッダーにプロトタイプがあるかを調べるには、「man free」を検索して、 Linux のマニュアル ページを探してください。上部近くには、次のように書かれています。

#include <stdlib.h>

void *malloc(size_t size);
void free(void *ptr);
void *calloc(size_t nmemb, size_t size);
void *realloc(void *ptr, size_t size);

これは、リストされた関数を使用するには、次を追加する必要があることを示しています。

#include <stdlib.h>

あなたのソースコードに。

于 2013-10-16T11:16:20.473 に答える