现在的位置: 首页 > 综合 > 正文

C++内存溢出场景1

2013年08月29日 ⁄ 综合 ⁄ 共 316字 ⁄ 字号 评论关闭
#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;
}

指针函数可以返回全新申请的内存地址,可以返回全局变量的地址,可以返回静态变量的地址,但就是不可以返回局部变量的地址。

抱歉!评论已关闭.