#includetest在呼叫結束後char *test()
main()
系統給test分配的資源全部被釋放
主函式main 呼叫test()所得到的值,將不會是期望的值1
截圖:1、棧 由編譯器自動分配釋放 ,存放函式的引數值,區域性變數的值等。其操作方式類似於資料結構中的棧。
2、堆 一般由程式設計者分配釋放, 若程式設計者不釋放,程式結束時可能由os** 。它與資料結構中的堆是兩回事,分配方式類似於鍊錶。
int a = 0a); 全域性初始化區
char *p1; 全域性未初始化區
main()
申請方式
stack: 由系統自動分配。 例如,宣告在函式中乙個區域性變數
intb; 系統自動在棧中為b開闢空間
heap: 需要程式設計者自己申請,並指明大小
在c中malloc函式 如int *p1 = (int *)malloc(10
);在c++中用new運算子 如int *p2 = new
int[20]; 但是p1、p2本身是在棧中的。
b) unique_ptr: 該指標只能指向記憶體上的乙個資源,該指標被刪除時,繫結的資源也將被釋放
shared_ptr:對於記憶體上的統一個資源可以有多個不同的指標指向它,當所有指向該資源的指標都被刪除時,該資源被釋放
考察重點:
1. 類的定義和使用,基本成員是否完整
2. 輸入引數的檢查及其他魯棒性的考慮
3. stl和c++11元素的使用
4. 除http://之外, 是否有考慮ftp:// site:// 等情況
5. 是否考慮url中的中文
6. 演算法是否簡潔高效
7. **風格
c++0x風格
1執行結果//借助strtok實現split
2 #include
3 #include 4
5int
main()617
18return0;
19 }
c++ stl 風格
str 需要分割的stringpattern 分割字串的字元的string
std::vector
string> split(std::string str,std::string
pattern)
}return
result;
}
現代程式設計 作業5
在前四個作業中,我們體會了陣列,子陣列的和,二維陣列,字串和字母的處理,簡單和複雜的 ui 程式等。大家鍛鍊了命令列的處理,模組的持續重構和演化,單元測試,ui 程式的處理,全域性單例的做法,mvc 設計模式等等。同時我們還學習和練習了兩次結對程式設計,學習了如何用 規範讓自己的程式容易理解,便於維...
現代程式設計 作業5
在前四個作業中,我們體會了陣列,子陣列的和,二維陣列,字串和字母的處理,簡單和複雜的 ui 程式等。大家鍛鍊了命令列的處理,模組的持續重構和演化,單元測試,ui 程式的處理,全域性單例的做法,mvc 設計模式等等。同時我們還學習和練習了兩次結對程式設計,學習了如何用 規範讓自己的程式容易理解,便於維...
08 物件導向程式設計
class class1 類的幫助資訊 pass 沒有具體功能實現 c class1 建立class1類的例項 print c main class1 object at 0x10ed722b0 class class1 類的幫助資訊 def init self 構造方法 print 我是class...