2015-09-09 36 views
0

我想清除一個數組,並認爲我會使用memtest()memtest找不到C

我是這樣用的:memtest(ptr->arr, 0, sizeof ptr->arr)。 ptr是一個指向結構的指針,arr可容納100個元素。

我得到這個錯誤,但是:

warning: implicit declaration of function 'memtest' is invalid in C99 [-Wimplicit-function-declaration] 

我需要進口一些圖書館嗎?我導入了stdio.h,stdlib.h和ctype.h。

+7

你是不是想用memset代替? – Serdalis

+1

我做到了!謝謝! –

回答

1

首先,標準C中沒有這樣的東西,例如memtest()。您可能意思是memset()

如果修復該未成年錯字後,你仍然有這樣的隱含聲明問題,檢查您是否包括<string.h>,因爲這是人memset()和朋友居住。

+0

謝謝!我確實得到了隱含的問題。 ''修好了。 –

1

你可能混淆了memset功能對一個不存在的功能稱爲memtest

編譯器抱怨並沒有頭限定了memtest函數,所以它被假定爲通過相同的編譯模塊中被實現,而不會向前定義來隱含地定義。

This Link是關於C99中的警告和更改的一些簡短文檔。

爲了擺脫這樣的警告,即使對於存在的功能,正確的頭文件也需要包含在您使用函數的C文件中。在memset的情況下,即<string.h>標題。

+0

謝謝,我搞砸了。 –