程序的内存模型—内存四区—堆区
生活随笔
收集整理的這篇文章主要介紹了
程序的内存模型—内存四区—堆区
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
#include <iostream>
using namespace std;//棧區的數據程序執行完之后就釋放。用指針指向某數據,但是函數指向完,該指針指向的位置的內容已經被釋放。
//所以不要返回局部變量的地址 !!!
int * func1(){int a=10;return &a;
}
//用new產生的數據是被放在堆區的,由程序員自行管理。 指針是在棧上的,它指向的值是放在堆區的。
//因此函數執行后堆區的數據也不會被釋放。直到整個程序運行完畢 (關閉彈出exe窗口之后)
//或者由程序員用delete將堆區的數據釋放
//所以可以成功獲取到數值
int * func2(){int *p=new int(10);return p;
}int main(){
// int *p=func1();int *p=func2();cout << *p << endl;cout << *p << endl; // delete p;cout << *p << endl; return 0;
}
總結:
1.利用new關鍵字可以創建堆區的數據
2.數據創建好之后不是返回數據本身,而是把該堆區創建的數據的地址返回給你。
總結
以上是生活随笔為你收集整理的程序的内存模型—内存四区—堆区的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 4G資料下載
- 下一篇: 程序的内存模型—new运算符