可怕的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语言中练习弦乐,但那一天不是这一天......
答案 0 :(得分:2)
您没有包含string.h
,因此编译器会假定strtok
定义为:
int strtok();
返回int
并获取未知数量的参数,它调用隐式函数声明。解决方案只是包含声明string.h
的{{1}}。
答案 1 :(得分:0)
这部分代码效果很好。如果还有任何问题,请发布。
#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;
}