首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

求问一个关于指针的奇怪有关问题

2013-11-18 
求问一个关于指针的奇怪问题#include iostreamusing namespace stdint* getPrime(){int a[2]a[0] 2

求问一个关于指针的奇怪问题

#include <iostream>

using namespace std;

int* getPrime()
{
int a[2];
a[0] = 2;
a[1] = 5;
return a;
}

int main()
{
int *a;
a = getPrime();
cout << a[0];
cout << a[1];
}

这段代码,根据调试,在函数返回之后还是一切正常的,但是在输出第一个数之后,整个数组都会变得混乱,请问这是为什么,完全不能理解啊……
PS:如果在函数中使用动态数组则一切正常
[解决办法]
因为int a[2]是一个局部变量,当函数执行完以后,也就会释放了这快内存空间的!
之后再访问就是无效的数据了,数据是什么是不可预测的

当然可以

int *a = (int *)malloc(sizeof(int) * 2);

//记得使用完 free就好!

热点排行