程序運行後
棧區:
由編譯器自動分配釋放,存放函數的參數值,局部變量等
注意事項:不要返回局部變量的地址,棧區開闢的數據由編譯器自動釋放
#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");
}
總結:第一次可以打印正確的數字,是因爲編譯器做了保留