目前尚不清楚爲什麼我得到的警告:路過的「strlen的」參數1時將整數指針不進行強制轉換
【警告】路過的「strlen的」參數1時將整數指針沒有施放[默認啓用] 預期「爲const char *」,但參數的類型「字符」
下面在兩個含有的strlen的3條語句的()的。
即使我試圖施放* str,它仍然會發出同樣的警告。 bfr是一個字符緩衝區。 * str在調用 gets()後指向char緩衝區。如果我使用strlen(* str),我會收到警告。如果我使用strlen(bfr),我不會。 但* str應等於bfr。因此有關錯誤的混淆。
現在,strlen arg 1被定義爲strlen(const char * string)。所以我 會期望strlen(bfr)也產生一個錯誤,因爲bfr []是一個 char字符串,而不是一個常量字符。
哪裏是正在製作一個指針的整數?
我在wXDev-C++下使用gcc。
void test(){
FILE *fileID = fopen("somefile.txt","r");
char *str, len;
char bfr[16];
str = fgets(bfr,16,fileID); // str will be set equal to &bfr[0]
len = strlen(*str); // This gives a warning
len = strlen((const char)*str); // This gives a warning
len = strlen(bfr); // This does not give a warning
}