如果我在我的代碼使用malloc
:爲什麼每次使用malloc時都會收到警告?
int *x = malloc(sizeof(int));
我得到這樣的警告從gcc
:
new.c:7:警告:函數 '的malloc'
new.c的隱式聲明:7:警告:內置函數'malloc'的不兼容隱式聲明
如果我在我的代碼使用malloc
:爲什麼每次使用malloc時都會收到警告?
int *x = malloc(sizeof(int));
我得到這樣的警告從gcc
:
new.c:7:警告:函數 '的malloc'
new.c的隱式聲明:7:警告:內置函數'malloc'的不兼容隱式聲明
您需要添加:
#include <stdlib.h>
此文件包含內置功能malloc
聲明。如果你不這樣做,編譯器會認爲你要定義你自己的函數命名malloc
和它警告你,因爲:
int
,這與內置的malloc
不兼容,需要size_t
並返回void*
)。您還沒有做過#include <stdlib.h>
。
您需要包括一個聲明函數的頭文件,例如:
#include <stdlib.h>
如果不包括此頭文件,該功能是不知道的編譯器。所以它認爲它是未聲明的。
養成了在幫助中查看功能的習慣。
C的大部分幫助都是在unix手冊頁上建模的。
man malloc
給出了相當有用的結果。
googling man malloc會告訴你我的意思。
當然在unix中,你也可以得到apropos相關的東西。
+1對於消息的實際描述 – 2009-08-07 11:28:30
術語nit:C中沒有內置函數這樣的事情。malloc只是標準C庫中的函數。 – Jens 2012-10-13 14:55:45