C 警告:传递参数从整数生成指针
我得到了警告C 警告:传递参数从整数生成指针,c,C,我得到了警告传递参数2“read\u int\u from\u config\u line”使指针不带强制转换 从配置行(buffer,config.port)读取int 我可以知道怎么解决这个问题吗?我可能对C完全是个白痴,因为我4周前才开始学习。一些帮助将不胜感激。谢谢我需要看看您是如何调用该函数的。我可以说的是,您正在尝试打印指针指向的位置,而不是值。打印值*val.从配置行(缓冲区和配置端口)读取int问题是:例程读取参数名时会遇到困难,因为它读取的是一个本地参数,之后不会返回。要对上面
传递参数2“read\u int\u from\u config\u line”使指针不带强制转换
从配置行(buffer,config.port)读取int
我可以知道怎么解决这个问题吗?我可能对C完全是个白痴,因为我4周前才开始学习。一些帮助将不胜感激。谢谢我需要看看您是如何调用该函数的。我可以说的是,您正在尝试打印指针指向的位置,而不是值。打印值*val.从配置行(缓冲区和配置端口)读取int代码>问题是:例程读取参数名时会遇到困难,因为它读取的是一个本地参数,之后不会返回。要对上面有用但简洁的注释进行扩展:read\u int\u from\u config\u line()
的第二个参数是指向int
的指针。您正在传递config.port
,它是一个int
。因此,编译器抱怨您正在从整数生成指针。您需要传递config.port
的地址。
struct config_struct {
int port; };
void read_int_from_config_line(char* config_line, int* val) {
char prm_name[MAX_VARIABLE_LEN];
sscanf(config_line, "%s %d\n", prm_name, val); }
void read_config_file(char* config_filename, struct config_struct config) {
FILE *fp;
char buffer[MAX_BUFFER_SIZE];
fp= fopen("settings.conf", "r");
if (fp == NULL)
printf("Config file does not exist, Creating one.../n");
{
fp = fopen("settings.conf", "w+");
fputs("NAME:Root\nIP:192.168.0.1\nPORT:20\nLOGFILE:\n", fp);
}
while (fscanf(fp, "%s", buffer) != EOF)
{
fgets(buffer, MAX_BUFFER_SIZE, fp);
if (buffer[0] == '#') {
continue;
}
if(!strcmp(buffer,"PORT:")) {
read_int_from_config_line(buffer ,config.port);
}
}
fclose(fp);