目錄
代碼區
全局區
棧區
堆區
new操作符
不同區域存放的數據,賦予不同的生命周期,給予開發人員更大的靈活編程。
代碼區
- 存放二進制代碼,由操作系統管理
- 未執行程序(.exe)前已經存在
- 共享,對頻繁執行的程序只需要內存中有一份代碼
- 只讀,防止程序意外修改
全局區
- 存放全局變量、靜態變量、常量(字符串常量、const修飾的變量)
- 未執行程序(.exe)前已經存在
- 該區域的數據在程序結束后由操作系統釋放
棧區
- 存放函數的參數、局部變量等
- 棧區數據由編譯器自動釋放,故不要返回局部變量的地址
堆區
- 由程序員分配及釋放,如果不釋放,程序結束時由操作系統釋放(注意內存泄漏)
- 在C++中由new開辟內存
new操作符
- new操作符開辟數據,使用delete釋放
- 語法:new 數據類型
- 返回:該數據對應的類型的指針
#include <iostream>using namespace std;int *func(void)
{int *p = new int(10);return p;
}int main(void)
{int *ptr = func();cout << "開辟內存的值:" << *ptr << endl;delete ptr; //釋放內存
}
推薦閱讀:[C++基礎入門](七):結構體