1. 程式人生 > >動態數組、C風格字符串、字符串字面值

動態數組、C風格字符串、字符串字面值

空字符 字符 產生 init 文件 c++標準庫 缺少 int store

動態數組

每一個程序在執行時都占用一塊可用的內存空間,用於存放動態分配的對象,此內存空間稱為程序的自由存儲區(free store)或堆(heap)。C語言使用malloc和free在堆中分配存儲空間,而C++語言則使用newdelete表達式實現相同的功能。

動態分配數組時,如果數組元素具有類類型,將使用該類的默認構造函數實現初始化;如果數組元素是內置類型,則無初始化:

string *psa = new string[10];    //array of 10 empty strings
int *pia = new int[10];              //array of 10 uninitialized ints

動態空間的釋放:使用delete[]。理論上回收數組時缺少方括號對,至少會導致運行時少釋放了內存空間,從而產生內存泄漏。對於某些系統和/或元素類型,有可能會帶來更嚴重的運行時錯誤。因此,在釋放動態數組時千萬別忘了方括號對。

C-style String (C風格字符串)

C程序把指向以空字符串結束的字符數組的指針視為字符串。

在C++中,字符串字面值就是C風格字符串。C標準庫定義了一系列處理這種字符串的庫函數,C++中將這些標準庫函數放在cstring頭文件中。由於C風格字符串本質上容易出錯,C++程序應該優先使用C++標準庫類string而少用C風格字符串。

動態數組、C風格字符串、字符串字面值