在函数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]
非常感谢任何帮助。
答案 0 :(得分:1)
我认为你要做的是:
int bla;
void my_func2(int **pp) {
*pp = &bla;
}
void my_func1() {
int *ptr;
my_func2(&ptr);
...
}