可怕的warning: passing argument 1 of ... makes integer from pointer without a cast
我就是不明白这个。我所要做的就是将一个简单的字符串(是的,我知道一个字符数组)传递给一个函数。该函数解析字符串并返回第一部分。有人能告诉我我哪里做错了吗?谢谢!
char* get_request_type(char* buffer) {
char* p;
p = strtok(buffer, "|");
return p;
}
int main()
{
char buffer[30] = "test|something";
fprintf(stdout, "buffer: %s\n", buffer); //<-- looks great but needs parsing
char* request_type = get_request_type(buffer); //<-- error is here
fprintf(stdout, "%s\n", request_type); //<--expecting to see 'test'
} 也许有一天我会习惯于使用C语言处理字符串,但那一天不是今天……
发布于 2013-09-06 16:23:09
您没有包含string.h,因此编译器将假定strtok被定义为:
int strtok();返回int并接受未知数量的参数,这是调用隐式函数声明。解决方案就是在声明strtok的地方包含string.h。
发布于 2013-09-06 16:09:25
这段代码运行良好。如果仍然有任何问题,请发帖。
#include<stdio.h>
#include<string.h>
char* get_request_type(char *buffer) {
char *p;
printf("----%s\n",buffer);
p = strtok(buffer, "|");
//fprintf("%s--->",p);
return p;
}
int main()
{
char buffer[30] = "test|something";
fprintf(stdout, "buffer: %s\n", buffer); //<-- looks great but needs parsing
char* request_type = get_request_type(buffer); //<-- No error here
fprintf(stdout, "request_type: %s\n", request_type);
return 0;
}https://stackoverflow.com/questions/18604114
复制相似问题