2 sjtu mercurial SJTU_Mercurial 于 2014.09.10 16:53 提问

C++程序中局部变量的访问权限问题
c++

对于如下的代码,在VS2013环境下,编译器并不报错。
但是我个人认为,主函数在调用f函数后,局部变量i的空间被释放,*p虽然指向i,但是应该没有i的访问权限。
请各位大牛指导,谢谢!

#include
#include

void f(int **q)
{
    int i = 5;
    *q = &i;
}
int main(void)
{
    int *p;

    f(&p);
    printf("%d\n", *p);
    system("pause");
    return 0;
}

1个回答

Jiazhou_Lvguan
Jiazhou_Lvguan   2014.09.11 16:24

这样做是不安全的,编译器应该会报个警告吧。

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!