问题描述
- C++程序中局部变量的访问权限问题
-
对于如下的代码,在VS2013环境下,编译器并不报错。
但是我个人认为,主函数在调用f函数后,局部变量i的空间被释放,*p虽然指向i,但是应该没有i的访问权限。
请各位大牛指导,谢谢!#include
#includevoid f(int **q) { int i = 5; *q = &i; } int main(void) { int *p; f(&p); printf("%dn", *p); system("pause"); return 0; }
解决方案
这样做是不安全的,编译器应该会报个警告吧。
时间: 2024-11-30 05:23:50