This question already has answers here:
Can a local variable's memory be accessed outside its scope?

(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