new和delete可以有效地、直接的進行動態內存的分配和釋放。 運算符new返回指定類型的一個指針,如果分配失敗(如沒有足夠的內存空間)時則返回0。 如: double *p; p=new double; *p=30.4;// 將值存放在開辟的單元中 系統自動根據double類型的空間大小開辟內存單元,並將地址放在指針p中。當然,也可在開辟內存單元時對單元裡的值進行初始化。上述代碼等價於: double *p; p=new double(30.4); 運算符delete是釋放new請求道的內存。 delete p 將p指針的內存單元釋放,指針變量p仍然有效,它可以重新指向另一個內存單元。 new也可以為數組分配內存,當釋放時,也可以告訴delete數組有多少個。 如: int *p; p=new int[10]; delete [10]p;//告訴delete數組有多少個元素,或delete []p;