C/C++语言指针和函数,作用域的问题
高洛峰
高洛峰 2016-11-08 12:46:50
0
1
632

include <iostream>

using namespace std;

void test(int **p){
int c = 10;
*p = &c;
}

int main(){
int a = 5;
int *p = &a;

test(&p);

cout << *p << endl;
return 0;
}

函数结束c变量不应该释放吗?为什么指针还有值?


高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

全員に返信(1)
三叔

变量释放了没错,对应的内存是不会清空的。不要以为释放了就没有了,消失了,内存的数据只有下次被修改才会改变。现在*p是一个野指针,它存储的地址已经不属于c了,所以谁也不能保证*p指向的数据会被后来压栈的数据覆盖。

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!