2009-08-04 133 views

回答

203

您需要添加:

#include <stdlib.h> 

此文件包含內置功能malloc聲明。如果你不這樣做,編譯器會認爲你要定義你自己的函數命名malloc和它警告你,因爲:

  1. 你沒有明確聲明它
  2. 已經有一個內置-in函數的名稱具有與隱式聲明不同的簽名(當函數被隱式聲明時,其返回和參數類型被假定爲int,這與內置的malloc不兼容,需要size_t並返回void*)。
+23

+1對於消息的實際描述 – 2009-08-07 11:28:30

+5

術語nit:C中沒有內置函數這樣的事情。malloc只是標準C庫中的函數。 – Jens 2012-10-13 14:55:45

28

您還沒有做過#include <stdlib.h>

15

您需要包括一個聲明函數的頭文件,例如:

#include <stdlib.h> 

如果不包括此頭文件,該功能是不知道的編譯器。所以它認爲它是未聲明的。

10

養成了在幫助中查看功能的習慣。

C的大部分幫助都是在unix手冊頁上建模的。

man malloc

給出了相當有用的結果。

googling man malloc會告訴你我的意思。

當然在unix中,你也可以得到apropos相關的東西。

相關問題