#include <iostream> int *GetVal() { int* nVal = new int(6); std::cout << nVal << std::endl; // 返回一个局部变量nVal的指针是极危险的. return nVal; } int main() { for (int i = 0; i < 10000000; ++i) { std::cout << i << std::endl; // 得到一个从函数返回的指向其局部变量的指针 int* pVal = GetVal(); std::cout << pVal << std::endl; *pVal = i; } return 0; }
指针函数可以返回全新申请的内存地址,可以返回全局变量的地址,可以返回静态变量的地址,但就是不可以返回局部变量的地址。