一• new/delete
int* p2 = new int;//不保證是零
int* p3 = new int(100);
int* p4 = new int[5];
delete p2;
delete p3;
delete p4;
二• 定位分配
char buf[100] = {};
new(buf) int[25];
不存在定位分配所對應的delete運算,一旦buf釋放,new所分配的空間也隨即釋放
//初步涉及記憶體 後面補充深入
//現在只是** 物件在**?在全域性?堆裡?還是 棧裡?生命週期是如何?
#include using namespace std;
//結構體
struct date
//析構
~date()
//成員變數
int year,month,day;
//成員函式
void show()
};int a = 100; //這個變數在全域性區
date d;//可以說是有這麼乙個變數 或者物件都可以。和普通變數比,它有成員變數和成員函式可以呼叫
/* *
不管是棧也好 堆也好 都需要開闢空間
通常都是方法執行了 在棧中開闢空間建立物件
堆裡 都是手動開闢 比如new alloc malloc
這裡的date d; 不在方法裡 也不在堆裡 所以這個物件還是在全域性區 *
*///堆裡的物件 生命週期是怎樣的?
//new是建立 在c++裡面需要delete 。 oc裡面是release,當引用計數器為0的時候,自動**機制幫我們去**了
//棧裡物件的空間 不用我們去管理記憶體
//全域性區物件(變數)在程式開始執行時,就建立出來,在程式結束時銷毀
void fa()
//主函式
int main()
//程式結束後 是全域性區的那個物件和main方法棧裡的d2銷毀
執行結果如下:
date()
*****= 1 *****=
date()
***** 3 *****=
date()
~date()
~date()
*****= 2 *****=
date()
***** 4 *****=
date()
date()
date()
~date()
~date()
~date()
***** 5 *****
***** 6 *****
10***** 7 *****
12345
~date()
~date()
program ended with exit code: 0
初步了解記憶體機制
對於計算機來說,儲存資料時通過申請記憶體來實現的,如果我們的資料是水的話,記憶體就是容器。對於int型的資料,需要以32bit大小的記憶體儲存,對於字串型別的需要8bit個單位大小的記憶體。但是申請記憶體的時候到底是乙個什麼樣的機制呢?或者是怎麼儲存的機制呢?我們還是以水和容器的例子來表達。在計算機...
初步對C語言的了解
第 一 特點 語言是一種結構化語言。它層次清晰,便於按模組化方式組織程式,易於除錯和維護。語言的表現能力和處理能力極強。它不僅具有豐富的運算子和資料型別,便於實現各類複雜的資料結構。它還可以直接訪問記憶體的實體地址,進行位 bit 一級的操作。由於 語言實現了對硬體的程式設計操作,因此 語言集高階語...
Jawe的初步了解
一 解壓開 jawe 原始碼包二 執行configure.bat 檔案這時會產生乙個 build.properties 檔案。檔案內容大致如下 jdk.dir c jbuilderx jdk1.4 install.dir version.number 1.4 三 再執行 make.bat 就可以編譯...