C++ 程序運行後的內存模型

程序運行後
棧區:
由編譯器自動分配釋放,存放函數的參數值,局部變量等
注意事項:不要返回局部變量的地址,棧區開闢的數據由編譯器自動釋放

#include<iostream>
#include<string>
using namespace std;


int* func() {

	int a = 10;   //局部變量放在棧區,方法執行完畢自動釋放內存
	return &a;    //返回局部變量地址

}

int main() {

	int * p = func();
	cout << *p << endl;  //第一次可以打印正確的數字,是因爲編譯器做了保留
	cout << *p << endl;  //第二次這個數據就不再保留了

	system("pause");

}

總結:第一次可以打印正確的數字,是因爲編譯器做了保留 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章