悬空指针的含义

时间:2018-10-27 11:19:21

标签: c pointers

如何确定C中的悬空指针?这是一个例子。

int *fun(void) {
    int i = 2;
    return &i;
}

1 个答案:

答案 0 :(得分:0)

在下面的代码块中

int *fun(void) {
    int i = 2;
    return &i;
}

您返回的是本地变量的地址,这意味着您正在返回悬挂指针,并且会导致不确定的行为,因此编译器可以警告过你

  

错误:函数返回局部变量的地址   [-Werror = return-local-addr]

     return &i;

如果可以使用gcc -Wall -Wstrict-prototypes -Werror test.c

之类的标志进行编译