This question already has answers here:
Can a local variable's memory be accessed outside its scope?
(20个答案)
7年前关闭。
有人告诉我,使用这样的指针很危险,请问任何人可以解释为什么这很危险,编写这种代码的“安全”方法是什么?
这样总是将25打印到屏幕上吗?如果没有,那为什么呢?
(20个答案)
7年前关闭。
#include <stdio.h>
int *pPointer;
void SomeFunction()
{
int nNumber;
nNumber = 25;
// make pPointer point to nNumber:
pPointer = &nNumber;
}
void main()
{
SomeFunction(); // make pPointer point to something
cout<< "Value of *pPointer: "<< *pPointer <<endl;
}
有人告诉我,使用这样的指针很危险,请问任何人可以解释为什么这很危险,编写这种代码的“安全”方法是什么?
这样总是将25打印到屏幕上吗?如果没有,那为什么呢?
最佳答案
在变量范围之外使用指向局部变量的指针总是很危险的。它调用未定义的行为。
09-30 21:42