c,摆脱未初始化的警告错误

时间:2017-12-08 18:13:52

标签: c function pointers warnings

在函数my_func1()中,我做的第一件事是调用另一个函数my_func2(),它总是设置指针。 GCC警告我可能没有设置指针。我怎样才能摆脱警告?

以下是一些仅用于演示的简化代码。

int bla;
void my_func2(int *ptr) {
   ptr = &bla;
}
void my_func1() {
    int *ptr;
    //ptr=0;
    my_func2(ptr);
}

如果取消注释行ptr=0,则警告消失。我不想设置变量,因为它my_func2()设置它后什么都不做。

gcc警告消息

  

warning: 'ptr' is used uninitialized in this function [-Wuninitialized]

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

我认为你要做的是:

int bla;
void my_func2(int **pp) {
    *pp = &bla;
}
void my_func1() {
    int *ptr;
    my_func2(&ptr);
    ...
}