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);