目前尚不清楚为什么我得到的警告:路过的“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
}